الخوارزميات: من الصفر إلى الاحتراف (دليل المبتدئين)
الخوارزميات: من الصفر إلى الاحتراف (دليل المبتدئين)
مرحباً بك في الدليل الشامل والنهائي للمبتدئين في الخوارزميات! تم تصميم هذه الدورة المتكاملة المكونة من 60 درساً لنقلك من عدم معرفة أي شيء عن التفكير الحاسوبي والكفاءة إلى إتقان هياكل البيانات الأساسية، وتقنيات الفرز، وخوارزميات الرسوم البيانية المتقدمة، ونماذج الخوارزميات الحيوية مثل Dynamic Programming و Greedy approaches. سوف تتعلم 'لماذا' يجب كتابة كود فعال، وإتقان المهارة الحاسمة للتحليل الخوارزمي باستخدام Big O notation. بنهاية هذه الرحلة، ستمتلك أساساً متيناً لمواجهة المقابلات التقنية وبناء حلول برمجية عالية الأداء والمُحسّنة.
الدروس
- الدرس الأول: ما هي الخوارزمية؟
- الدرس الثاني: لماذا ندرس الخوارزميات؟
- الدرس الثالث: الخوارزميات في الحوسبة اليومية
- الدرس الرابع: قياس الأداء: الوقت والمساحة
- الدرس الخامس: مقدمة إلى ترميز Big O
- الدرس السادس: تحليل الوقت الثابت: O(1)
- الدرس السابع: تحليل الوقت الخطي: O(N)
- الدرس الثامن: تحليل الوقت التربيعي: O(N²)
- الدرس التاسع: تحليل الوقت اللوغاريتمي: O(log N)
- الدرس العاشر: سيناريوهات أسوأ حالة، ومتوسطة، وأفضل حالة
- الدرس الحادي عشر: المصفوفات (Arrays) والقوائم المرتبطة (Linked Lists) (مقارنة)
- الدرس الثاني عشر: المكدسات (Stacks) (LIFO) وقوائم الانتظار (Queues) (FIFO)
- الدرس الثالث عشر: جداول التجزئة (Hash Tables) (ربط المفاتيح بالقيم)
- الدرس الرابع عشر: مقدمة إلى العودية (Recursion) (المفهوم)
- الدرس الخامس عشر: العودية مقابل التكرار (Iteration)
- الدرس السادس عشر: فرز الفقاعة (Bubble Sort): المفهوم والتطبيق
- الدرس السابع عشر: تحليل كفاءة فرز الفقاعة (Bubble Sort)
- الدرس الثامن عشر: فرز الاختيار (Selection Sort): المفهوم والتطبيق
- الدرس التاسع عشر: فرز الإدراج (Insertion Sort): المفهوم والتطبيق
- الدرس العشرون: مقارنة عملية بين أنواع الفرز O(N²)
- الدرس الحادي والعشرون: فرز الدمج (Merge Sort): منهجية القسِّم تسُد (الجزء 1)
- الدرس الثاني والعشرون: فرز الدمج (Merge Sort): التطبيق وخطوة الدمج (الجزء 2)
- الدرس الثالث والعشرون: فرز السريع (Quick Sort): استراتيجية المحور (Pivot) (الجزء 1)
- الدرس الرابع والعشرون: فرز السريع (Quick Sort): التقسيم والعودية (الجزء 2)
- الدرس الخامس والعشرون: مقارنة أنواع الفرز N log N (Merge مقابل Quick)
- الدرس السادس والعشرون: البحث الخطي (Linear Search): بسيط وفعال
- الدرس السابع والعشرون: البحث الثنائي (Binary Search): المتطلبات والتطبيق (O(log N))
- الدرس الثامن والعشرون: تطبيقات متقدمة للبحث الثنائي
- الدرس التاسع والعشرون: التجزئة (Hashing) وحل التضارب (Collision Resolution)
- الدرس الثلاثون: مرشحات بلوم (Bloom Filters) (مقدمة في الهياكل الاحتمالية)
- الدرس الحادي والثلاثون: مقدمة إلى الأشجار (المصطلحات، الجذر، العُقد)
- الدرس الثاني والثلاثون: أشجار البحث الثنائي (BSTs): الإدراج والبحث
- الدرس الثالث والثلاثون: خوارزميات اجتياز الأشجار: Inorder, Preorder, Postorder
- الدرس الرابع والثلاثون: الأكوام (Heaps): هيكل Max Heap و Min Heap
- الدرس الخامس والثلاثون: خوارزمية فرز الكومة (Heap Sort)
- الدرس السادس والثلاثون: مقدمة إلى الرسوم البيانية (Graphs) (العُقد، الحواف، الأنواع)
- الدرس السابع والثلاثون: تمثيل الرسوم البيانية: مصفوفة التجاور مقابل قائمة التجاور
- الدرس الثامن والثلاثون: البحث بعمق أولاً (DFS): المفهوم والتطبيق
- الدرس التاسع والثلاثون: البحث بعرض أولاً (BFS): المفهوم والتطبيق
- الدرس الأربعون: البحث بعمق مقابل البحث بعرض: اختيار الاجتياز الصحيح
- الدرس الحادي والأربعون: الرسوم البيانية الموزونة ومشكلة أقصر مسار
- الدرس الثاني والأربعون: خوارزمية Dijkstra's: مقدمة والجشع (Greediness)
- الدرس الثالث والأربعون: خوارزمية Dijkstra's: خطوات التطبيق المفصلة
- الدرس الرابع والأربعون: التعامل مع الأوزان السالبة: مقدمة إلى Bellman-Ford
- الدرس الخامس والأربعون: أقصر مسار لجميع الأزواج: مقدمة إلى Floyd-Warshall
- الدرس السادس والأربعون: مقدمة إلى نماذج الخوارزميات (Algorithmic Paradigms)
- الدرس السابع والأربعون: القسِّم تسُد: مراجعة Merge Sort و Quick Sort
- الدرس الثامن والأربعون: الخوارزميات الجشعة (Greedy): الخصائص والمزالق
- الدرس التاسع والأربعون: مثال على الخوارزمية الجشعة: مشكلة صرف العملات (الحالة البسيطة)
- الدرس الخمسون: أشجار الامتداد الدنيا (MST): مفهوم خوارزمية Prim's
- الدرس الحادي والخمسون: خوارزمية Kruskal's: استخدام هيكل الاتحاد والمجموعات المنفصلة (DSU)
- الدرس الثاني والخمسون: مقدمة إلى البرمجة الديناميكية (DP)
- الدرس الثالث والخمسون: مثال DP 1: التذكر (Memoization) (منهجية من الأعلى للأسفل)
- الدرس الرابع والخمسون: مثال DP 2: الجدولة (Tabulation) (منهجية من الأسفل للأعلى - Fibonacci)
- الدرس الخامس والخمسون: مثال DP 3: مشكلة حقيبة الظهر (Knapsack) (مقدمة 0/1)
- الدرس السادس والخمسون: خوارزميات مطابقة السلاسل النصية: مقدمة للمنهج الساذج (Naive)
- الدرس السابع والخمسون: مقدمة إلى فئات التعقيد: P مقابل NP
- الدرس الثامن والخمسون: خوارزميات التراجع (Backtracking): مفهوم مشكلة N-Queens
- الدرس التاسع والخمسون: الخوارزميات الاحتمالية و Randomized Quick Sort
- الدرس الستون: خلاصة الدورة، مراجعة، والخطوات التالية