تخطَّ إلى المحتوى

🧮 شرح هياكل البيانات والخوارزميات

لماذا الخوارزميات؟ — رحلة بصرية

الدرس 26 من 32· ⏱ 2 دقائق قراءة

لماذا الخوارزميات؟ لأن السرعة تفرق

تخيل أنك تبحث عن اسم في دليل الهاتف:

البحث الخطي (واحد بواحد):
📖 [أحمد] → [باسل] → [جمال] → ... → [يزن]
   1       2       3             N  خطوة

البحث الثنائي (نصف في كل مرة):
📖 [أحمد ... يزن] → أتجاه النصف الذي يحتوي يزن
   كل خطوة تحذف نصف الصفحات!

الفرق بين O(n) و O(log n) هائل عندما n = مليار.

تصوّر O(n) vs O(log n)

n = 1,000,000,000 (مليار)

O(n) — البحث الخطي:
<-------------------------------------------------->
مليار عملية

O(log n) — البحث الثنائي:
<-------->
فقط 30 عملية!

⚠️ O(log n) لا يهتم بحجم المدخلات — يقتلها نصفًا نصفًا.

خوارزميات في حياتك اليومية

Google Maps: تحسب أقصر طريق بين ملايين النقاط في أجزاء من الثانية — تستخدم Dijkstra و A*.

Netflix: توصي بأفلام بناءً على تاريخك — تستخدم تصفية تعاونية (خوارزميات رسم بياني).

محركات البحث: تجيب على استفسارك في 0.5 ثانية — خوارزميات فهرسة وترتيب (PageRank).

التجارة الإلكترونية: تعرض منتجات مشابهة — خوارزميات التجميع (Clustering).

لماذا نقيس الكفاءة؟

بدون تحليل الخوارزميات:

# بطيء جدًا: O(n²) — ١٠٠ عنصر = ١٠٠٠٠ عملية
def find_duplicates_slow(arr):
    dups = []
    for i in range(len(arr)):
        for j in range(len(arr)):
            if i != j and arr[i] == arr[j]:
                dups.append(arr[i])
    return dups

# سريع: O(n) — ١٠٠ عنصر = ١٠٠ عملية
def find_duplicates_fast(arr):
    seen = set()
    dups = []
    for x in arr:
        if x in seen:
            dups.append(x)
        seen.add(x)
    return dups
الفرق في الزمن لـ n = 10,000:

O(n²): 100,000,000 عملية  →  10 ثوانٍ
O(n):  10,000 عملية       →  0.001 ثانية

الخوارزمية مجرد وصفة طبخ

وصفة (خوارزمية) لعمل شاي:
1. املأ الغلاية ماء
2. أشعلها حتى تغلي
3. ضع كيس الشاي في الكوب
4. صب الماء الساخن
5. انتظر 3 دقائق
6. أزل كيس الشاي

نفس الشيء للخوارزمية:
1. استقبل المدخلات
2. نفذ التعليمات خطوة بخطوة
3. أخرج النتيجة في النهاية

الخلاصة

الخوارزميات هي طريقة التفكير قبل أن تكون أكواد. اختر الخوارزمية الصح — وفر وقتًا وذاكرة.

🎯 التالي: الاستدعاء الذاتي (Recursion) — تصوّر وتطبيق.

شرح لماذا الخوارزميات؟ — رحلة بصرية — هياكل البيانات والخوارزميات بالعربي
لماذا الخوارزميات؟ — رحلة بصريةهياكل البيانات والخوارزميات بالعربي · The Code Fix

📚 لمزيد من التعمّق في هياكل البيانات والخوارزميات، راجِع هياكل البيانات على ويكيبيديا.

هل كان هذا الدرس مفيدًا؟