ماهى الخوارزميات

ماهى الخوارزميات

 

 

اذا كنت قد قضيت بعض الوقت مع البرمجه فلابد وانك سمعت عن الخوارزميات فهى عباره عن طريقه حل مشكله ما

فعندما تقوم باعداد كوب من الشاى فانك تقوم بتطبيق خوارزميه , لانك تقوم بوضع اوراق الشاى فى الماء ثم القيام بغليها

ثم وضع السكر فى الكوب واخيرا وضع الشاء فى الكوب .

اذا الخوارزميات هى عباره عن الخطوات المتبعه لحل مشكله ما فى هذا المقال نقوم باستعراض اشهر تلك الخوارزميات.

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
m2pack.biz