7 خوارزميات لابد لكل مبرمج أن يعرفها


(عمارة إسلامية) #1

بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته

إخوتي وأخواتي المهندسين والمهندسات؛
مقال نافع - بحوله تعالى - في مجال لغات البرمجة.

7 خوارزميات لابد لكل مبرمج أن يعرفها

## 7 خوارزميات لابد لكل مبرمج أن يعرفها

/
7 خوارزميات لابد لكل مبرمج أن يعرفها

إذا كنت قد قضيت بعض الوقت مع البرمجة فلابد وأنك سمعت عن الخوارزميات فهي عبارة عن طريقه حل مشكلة ما.
فعندما تقوم بإعداد كوب من الشاي؛ فإنك تقوم بتطبيق خوارزمية ؛
لأنك تقوم بوضع أوراق الشاي في الماء ثم القيام بغليها، ثم وضع السكر في الكوب وأخيرًا وضع الشاي في الكوب .
اذا الخوارزميات هى عباره عن الخطوات المتبعه لحل مشكله ما فى هذا المقال نقوم باستعراض اشهر تلك الخوارزميات.


Sort Algorithms
تعتبر خوارزمية الترتيب هي من أكثر الخوارزميات دراسة و بحث في مجال علوم الحاسب , الهدف منها هو ترتيب عدة عناصر بترتيب معين .
كل لغات البرمجة لديها طريقتها الخاصة في الترتيب .
بعض أشهر خوارزميات الترتيب هي:
•Merge Sort
•Quick Sort
•Heap Sort
•Bubble Sort
مثال : الترتيب بحسب السعر أو الشعبية في المواقع التجارية.


Search Algorithms
تقوم هذه الخوارزميي بالبحث عن عنصر معين فى مكان ما ومن اشهر الأمثلة عليها هو ما يعرف بالبحث الثنائى أوBinary search فهس تقوم بتقسيم العناصر إلى النصف عدة مرات إلى أن يتم إيجاد العنصر المراد،
ومن تطبيقاتها عندما تقوم بالبحث عن اسم ملف مثلا؛ مقطع فيديو معين فهو يقوم بالطريقة السابقة؛
إلى أن يتم إيجاده.


Depth/Breadth First Search
تستخدم فى البحث ولكن في ال Data structure وهي من الدوال المفيدة والمهم جدا ومن اهم تطبيقاتها
•في البحث عن المعلومات في محركات البحث Crawling
•في الذكاء الاصطناعى في بناء الروبوتات مثل الروبوت ألذي يلعب شطرنج.
•إيجاد اقصر الطرق بين نقطتين وحل المتاهات
.


Hashing
حاليا من اكثر الخوارزميات المستخدمة في إيجاد عنصر ما عن طريق المفتاح الخاص به Key/Value pair
يعرف أيضًا باسم القاموس أو Dictionary ويقوم بربط كل قيمه تريد حفظها بمفتاح معين؛
لذلك عن البحث عن قيمة معينة كل ما عليك هو استخدام المفتاح،
وهى أسرع بكثير من Sort + Search لإيجاد عنصر ما, من أهم التطبيقات:
•فى ال router لتسجيل IPs
•للتأكد من وجود قيمة معينة في List حيث أن ال Linear search سيأخذ وقت كبير يتناسب مع عدد العناصر.


Dynamic Programming
تستخدم هذه الخوارزمية لحل المشاكل المعقدة عن طريق تكسيرها إلى أجزاء أصغر , نحل المشاكل الصغيرة نتذكر حلها جيدا ثم نحل المشاكل الأكبر بسرعة مثال :
ما مجموع 1+1+1+1+1 , ستعدها وتقول 5 ولكن إذا قلت لك اضف واحد ماذا يكون العدد ستجاوب على الفور 6
بدون العد مره أخرى كيف فعلتها ؟
أنت فقط قمت بإضافة واحد على العدد الذي تتذكره في المشكلة السابقة بدون العد مرة
أخرى ال Dynamic Programming تقوم بنفس الطريقة لحل المشكلات الكبيرة .


Exponentiation by squaring
اذا اردت ان تحسب 232 كل ما ستفعله هو أن تقوم بعمل loop ل 32 مره لإيجاد الحل , ماذا إذا قلت لك أنه يمكنك الحصول على نفس الجواب بعمل loop ل 5 مرت فقط .
هذه الخوارزمية تستخدم لإيجاد الحل لرقم مرفوع لقوى كبيرة في وقت صغير جداً.
O(log N) .


String Matching and Parsing
واحده من أهم الخوارزميات تستخدم للبحث عن مقطع معين في نص ضخم , فعندما تستخدم Ctrl +F فإنك تقوم بالبحث عن نص ضخم
في الملف باستخدام هذه الخوارزمية , الجدير بالذكر هو أن هذه الخوارزمية تستخدم أيضًا خوارزمية ال Hashing لتسريع عملية البحث .


Primality Testing Algorithms
تستخدم لتحديد إذا ما كان رقم معين اولى ام لا من اهم تطبيقاتها
•التشفير
•تستخدم أيضًا في ال Hashing


كانت هذه أبرز الخوارزميات المستخدمة في علوم الحاسب.

ــــــــــــــــــــــــــــــــــــــــــــــــــــ

انتهى.

/

المصدر/ مدوّنة صفحات.
بقلم: علاء نور.

بحول الله تعالى يكُن لقاء جديد؛ في رحاب هندسة الكمبيوتر ولغات البرمجة.