ما هي الفائدة التي تقدمها الخوارزميات للمبرمج ؟ و هل يمكن أن أتعلمها و أتعلم لغة برمجة في نفس الوقت
ما هي الفائدة التي تقدمها الخوارزميات للمبرمج ؟
الخوارزمية ببساطة هي مجموعة من الخطوات يتم تكرارها إلى أن يتحقق شرط يؤدي إلى النتيجة المطلوبة
و التفكير وفق النمط الخوارزمي يجعلك تكتب أكواد بشكل أفضل بكثير حيث يجعل الكود أقصر وأسرع وأكثر متانة وأقل خطأ
أنت تطلع على الخوارزميات المختلفة لتنمي مهاراتك في التفكير وفق النمط الخوارزمي
كمثال :
لو طلب أحدهم منك تصميم تطبيق لإدخال رقم و من ثم يظهر في كونه هل هو عدد أولي أم لا
حينها مالذي يخطر على بالك فعله ؟
أول شيء ستبحث عن تعريف العدد الأولى لمعرفة كيف يمكن معرفة كون العدد أولي أم لا
ستجد أن تعريفه هو أن أي عدد ليس له قواسم إلا نفسه والواحد هو عدد أولي
وباالتالي ستفكر في عمل برنامج يقوم بتجربة تقسيم العدد على كل الأعداد التي هي أصغر منه وفحص في كون لناتج القسمة الصحيح بواقي أم لا وفي حال وجد أي عدد له ناتج صحيح بدون بواقي إذا العدد ليس أولي وأما إذا مررت على الجميع وكان الكل له بواقي إذا فالعدد ليس أولي
من هنا تبدأ في تحويل عملية الفحص إلى تعليمات وفق اللغة التي تختارها
وتبدأ باستخدام عمليات الشرط والحلقات و القسمة والفحص
هنا نقول أنك طبقت خوارزمية ما وحولتها لبرنامج يقوم بعمل ما
مع الخبرة والمراس ستكتشف فيما بعد طرق مختصرة أكثر للوصول إلى نفس النتيجة
وهنا نقول أنك قمت بتحسين الخوارزمية
كمثال :
بدلاً من فحص كل الأعداد التي هي أصغر من العدد نقوم بفحص فقط الأعداد التي هي أصغر من جذره
وذلك لأن وجود أي قاسم ضمن المجال ماقبل الجذر سيكون القاسم المقابل له في المجال الأكبر من الجذر
وبالتالي يكفي فحص الأعداد ضمن أحد المجالين ولا شك أن المجال الأصغر هو الأفضل لأنه أقل عدد
فمثلا لفحص العدد 999 يكفي أن تفحص الأعداد من 2 إلى 10 والتي هي 8 أعداد بدلا من فحص المجال من 10 إلى 999 والتي هي 989 عدد أو بدلا من الطريقة التقليدية وفحص من 2 إلى 998 والتي هي 996 عدد
لأنك ستكشف قاسم وهو 3 الذي يقابله 333 والقاسم 9 الذي يقابله 111
وهكذا
التعليقات