شرح عام عن الخوارزميات
الخوارزمية هي مجموعة من التعليمات لحل مشكلة أو إنجاز مهمة. أحد الأمثلة الشائعة للخوارزمية هو الوصفة للطهو ، والتي تتكون من تعليمات محددة لإعداد طبق أو وجبة. يستخدم كل جهاز حاسوب الخوارزميات لأداء وظائفه في شكل إجراءات قائمة على الأجهزة أو البرامج.
مثال
خوارزمية حساب العمر.
السنة الحالية – سنة الميلاد = العمر
2021 – 2001 = 20
مثال آخر .
أحمد يريد الذهاب إلى المتحف.
الطرق المقترحة (الخوارزميات).
1 – استئجار سيارة أجرة
2 – إستخدام المواصلات العامة
من أجل تحديد أفضل طريقة للذهاب إلى المتحف من بين الطرق فوق يجب فهم نقطتين أساسيتين
1 – الوقت ( حساب الوقت المستغرق في الوصول إلى المتحف )
2 – التكلفة المادية لكل طريقه
⭕ – سيارة الأجرة مكلف جدا لكن بوقت أقل
⭕ – المواصلات العامة أقل في التكلفة لكن الوقت أكثر من سيارة أجرة
بعد معرفة مميزات وعيوب كل طريقه يجب إختيار أفضل حل بما يناسب ميزانية أحمد 😎
إذا أمتلك أحمد المال الكافي يختار
⭕ سيارة الأجرة
إذا لم يمتلك المال الكافي سوف يختار
⭕ المواصلات العامة.
✴ الخوارزميات في البرمجة.
هي مجموعة من التعليمات البرمجية الواضحة التي يتم تنفيذها واحدة تلو الآخرى بشكل متسلسل لحل مشكلة ما.
تهتم دراسة الخوارزميات بعاملين مهمين.
⭕ Time complexity الوقت الذي يقضيه الكمبيوتر فى تنفيذ الخوارزمية
⭕ Space complexity كمية الذاكرة التي استخدمها البرنامج لتنفيذ الخوارزمية.
مثال.
⭕ قم بعمل برنامج جمع الأعداد من 1 إلى 1000
(1 + 2 + 3 + …… 1000)
طرق الحل
✴ إستخدام دوال التكرار نقوم بعمل دالة تكرار تجمع الأرقام من 1 إلى 1000
باستخدام javascript
js
let total = 0;
for(let i = 1 ; i <= 1000; i++) {
total += i;
}
console.log(total);
إستخدام هذه الطريقة لن يستخدم الكثير من الذاكرة لكن زمن التنفيذ طويل جدا .
✴ باستخدام القاعدة التالية
المجموع = N * (N + 1) / 2
حيث N = الرقم الذي نريد الجمع إليه
js
function sumTo(n) {
return ((n + 1) * n) / 2;
}
let total = sumTo(1000)
console.log(total)
هذه الطريقة لا تحتاج إلى الكثير من الوقت و لا تستخدم الكثير من الذاكرة
✳ عوامل جودة الخوارزمية
✴ زمن التنفيذ قليل
✴ لا تحتاج إلى إستخدام الذاكرة بشكل كبير
✴ خطوات واضحة وسهلة الفهم
✴ تحديد المدخلات والمخرجات بدقة
✳ لماذا يجب تعلم الخوارزميات.
تبرز أهمية تعلم الخوارزميات في
⭕ تحسين وقت تنفيذ البرنامج.
⭕ إستخدام الذاكرة بشكل صحيح.
⭕ تبسيط الكود بسبب الإعتماد على خطوات واضحة وسهلة الفهم