جار التحديث ...
جار التحديث ...

ما هي الخوارزميات , وكيف أبدأ في تعلمها ؟

  • 0

خوارزميات

إجابات المستخدمين (4)


  • شريك الإطلاق
  • عضو جديد
  • قبل أشهر 9

يوجد خطأ شائع وهو اعتقاد ان تصميم الخوارزميات هو نفسه المخطط التدفقي لسير البرنامج (نعم يمكن ان تسمى خوارزمية )

ولكن علم الخوارزميات هو تصميم طرق فعالة وسريعة لحل مشاكل معينة .

على سبيل المثال : يوجد لدينا عدة مدن تربط بينها طرق كل من هذه الطرق له طول معين ونريد الوصول من مدينة الى اخرى بأقصر مسافة ؟

هذا النوع من المسائل يدعى Shortest paths problems , ويوجد عدة خوارزميات لحل هذه المشكلة اهمها خوارزمية Dijkstra  التي تعتمد تقنية في تصميم الخوارزميات تسمى Greedy 

او Ballman-form او خوارزمية Floyed-Warshal  التي تعتمد تقنية التصميم المسماة البرمجة الديناميكية Dynamic Programming .

 

بشكل عام فان تصميم الخوارزميات يحوي عدة انواع من المشاكل , او تقنيات الحل :

-Brute Force Techniuqe الذي يعتمد التجريب الشامل لكل الحالات , مثلا بحالة المسألة السابقة يمكن تجريب كل الطرق ومن ثم اختيار الطريق الأقصر ولكن هذا مكلف زمنيا .

-Greedy  : تهدف الى اختيار اصغر او اكبر نتيجة .

-Dynamic Programming : البرمجة الديناميكية , هذه التقنية تعتمد مبدأ تقسيم المسألة الى مسائل جزئية ومن ثم الانتقال الى حلول اخرى لنصل الى الحل النهائي , على سبيل المثال في حالة متتالية فيبوناتشي نعلم اول عددين من السلسلة , وعلى اساسهما نستطيع ايجاد بقية السلسلة

-Graph Theory : من اهم المجالات في علم الرياضيات والحاسب  , التي تتعامل مع الاشجار والبيانات وخوارزمياتها الواسعة (Shortest Path تعتبر احدها )

-Search : البحث الخطي والثنائي والثلاثي.

-Sorting  .

والمزيد ...

 

طريقة التعلم الأفضل هي  Compatitive Programming ومواقع التدريب على الانترنت حيث يتم اعطاء المستخدم مسألة ويطلب تحقيقها برمجيا
اشهرها www.codeforces.com

 

يوجد دورة عربية تشرح هذه المفاهيم بتوسع اكبر للدكتور مصطفى سعد .

https://www.youtube.com/channel/UC8OxKsmAyrGAfBiluhpLkbA


  • 0
رد على التعليق (0)

الردود :


لا يوجد ردود بعد


سجل الدخول لاضافة رد
  • شريك الإطلاق
  • عضو جديد
  • قبل سنة

الخوارزميات هي سير والية عمل البرامج وترتيبها وتدفق البيانات فيها وحتساعدك في التخطيط للعمل قبل البدء في كتابة الكود وحتسهل البرمجة عليك بشكل كبير وبرأيي موقع هارمش هو الافضل في تعلم الخوارزميات
http://harmash.com/algorithms/algorithms-introduction/

 


  • -1
رد على التعليق (0)

الردود :


لا يوجد ردود بعد


سجل الدخول لاضافة رد
  • عضو أكاديمي
  • قديم العهد
  • قبل سنة

ف راي موقع هرموش احسن المواقع العربية التي تشرح الخوارزميات http://harmash.com/algorithms/algorithms-introduction/


  • -1
رد على التعليق (0)

الردود :


لا يوجد ردود بعد


سجل الدخول لاضافة رد

الخوارزميات تسمى Algorithms باللغة الإنجليزية.
أول شيء يجب أن تعرفه هو أن الخوارزميات ليست لغة برمجة, إنما هي طرق التحليل و التفكير التي عليك اتباعها حتى تتمكن من كتابة الكود بشكل صحيح.

اليك بعض المصادر لتعلم الخوارزميات 

http://harmash.com/algorithms/algorithms-introduction/

https://www.youtube.com/watch?v=6gWhE-S9uFc

https://www.youtube.com/watch?v=6hfOvs8pY1k

 


  • -1
رد على التعليق (0)

الردود :


لا يوجد ردود بعد


سجل الدخول لاضافة رد
سجل الدخول لاضافة اجابة جديدة