لماذا هياكل البيانات والخوارزميات؟
- مقابلات العمل: شركات التقنية الكبرى تركّز عليها.
- كود فعّال: حلّ المشكلات بأقل وقت وذاكرة.
- تفكير منطقي أقوى في البرمجة عمومًا.
هيكل البيانات: طريقة تنظيم البيانات. الخوارزمية: خطوات حلّ مشكلة.
أشهر هياكل البيانات
- المصفوفة (Array): عناصر مرتّبة بفهارس.
- القائمة المترابطة (Linked List): عُقد متّصلة ببعضها.
- المكدّس والطابور (Stack & Queue): ترتيب دخول/خروج محدّد.
- الشجرة والرسم (Tree & Graph): علاقات هرمية أو شبكية.
سنتناول كلًّا منها بالتفصيل مع أمثلة عملية لاحقًا.
تعقيد الوقت: Big O
طريقة لقياس كيف ينمو وقت تنفيذ الخوارزمية مع حجم المدخلات.
| Big O | الاسم | مثال |
|---|---|---|
| O(1) | ثابت | الوصول لعنصر بفهرسه |
| O(log n) | لوغاريتمي | البحث الثنائي |
| O(n) | خطّي | المرور على مصفوفة |
| O(n log n) | شبه خطّي | الترتيب الجيد |
| O(n²) | تربيعي | حلقتان متداخلتان |
أمثلة
// O(1) — خطوة واحدة مهما كبر المدخل
function first(arr) {
return arr[0];
}
// O(n) — يمرّ على كل عنصر
function sum(arr) {
let total = 0;
for (let x of arr) total += x;
return total;
}
// O(n²) — حلقة داخل حلقة
function pairs(arr) {
for (let i of arr)
for (let j of arr)
console.log(i, j);
}
القاعدة
كلما قلّ "أُسّ" النمو، كانت الخوارزمية أكفأ. نسعى دائمًا لأقل تعقيد ممكن.
أسئلة شائعة
هل أحتاج رياضيات قوية لتعلّم الخوارزميات؟ أساسيات المنطق تكفي للبداية؛ يتطوّر الجانب الرياضي تدريجيًا مع الممارسة.
لماذا يسألون عنها في المقابلات؟ لأنها تقيس قدرتك على التفكير المنطقي وحلّ المشكلات بكفاءة، لا مجرّد حفظ الصياغة.
🎯 التالي: المصفوفات والقوائم المترابطة.