🧪 التدريبات
كل تمرين «جرّب بنفسك» في مكان واحد: اقرأ المطلوب، ثم اكتب الحل وشغّله داخل صفحة الدرس.
الوحدة 1: مقدمة في تراكيب البيانات والخوارزميات
أعلى درجة وموقعهاسهل · الدرس 1: ما تراكيب البيانات والخوارزميات؟
لديك قائمة درجات. اكتب خوارزمية بنفسك (دون max) تجد أعلى درجة وموقعها في القائمة، وعدد المقارنات التي احتجتها.←زر الرجوع في المتصفحسهل · الدرس 2: جولة في أشهر تراكيب البيانات
المستخدم زار الصفحات بالترتيب: الرئيسية، المنتجات، القهوة، السلة، ثم ضغط زر الرجوع مرتين. استخدم مكدسًا لتعرف الصفحة الحالية.←
لديك قائمة درجات. اكتب خوارزمية بنفسك (دون max) تجد أعلى درجة وموقعها في القائمة، وعدد المقارنات التي احتجتها.←زر الرجوع في المتصفحسهل · الدرس 2: جولة في أشهر تراكيب البيانات
المستخدم زار الصفحات بالترتيب: الرئيسية، المنتجات، القهوة، السلة، ثم ضغط زر الرجوع مرتين. استخدم مكدسًا لتعرف الصفحة الحالية.←
الوحدة 2: تحليل وتقييم الخوارزميات
عدد مرات الظهور مع اختباراتمتوسط · الدرس 3: كتابة الخوارزمية والتحقق من صحتها
اكتب دالة
قائمة فيها 8 أسماء. احسب عدد مقارنات البحث الخطي عن كل اسم، وعن اسم غير موجود، ثم اطبع الأفضل والأسوأ والمتوسط (للأسماء الموجودة).←
اكتب دالة
count_of(a, x) تُرجع عدد مرات ظهور x في القائمة a دون استخدام a.count، ثم اختبرها بالحالات الحدّية.←حلّل البحث الخطيمتوسط · الدرس 4: الحالة الأفضل والأسوأ والمتوسطةقائمة فيها 8 أسماء. احسب عدد مقارنات البحث الخطي عن كل اسم، وعن اسم غير موجود، ثم اطبع الأفضل والأسوأ والمتوسط (للأسماء الموجودة).←
الوحدة 3: تصميم وتنفيذ خوارزميات فعّالة
عدّ الأرقام بالعوديةمتوسط · الدرس 5: العودية
اكتب دالة عودية
عدّل البحث الثنائي ليُرجع الموقع وعدد المقارنات معًا، ثم ابحث في الأعداد الزوجية من 2 إلى 2000.←دمج قائمتي درجاتمتوسط · الدرس 7: الترتيب بالدمج والترتيب السريع
لديك درجات شعبتين، كل منهما مرتبة تصاعديًّا. ادمجهما في قائمة واحدة مرتبة دون sorted، واطبع أعلى 3 درجات.←
اكتب دالة عودية
digits(n) تُرجع عدد أرقام العدد الصحيح الموجب n، دون تحويله إلى نص.←عدّاد خطوات البحث الثنائيمتوسط · الدرس 6: فرّق تسُد: البحث الثنائيعدّل البحث الثنائي ليُرجع الموقع وعدد المقارنات معًا، ثم ابحث في الأعداد الزوجية من 2 إلى 2000.←دمج قائمتي درجاتمتوسط · الدرس 7: الترتيب بالدمج والترتيب السريع
لديك درجات شعبتين، كل منهما مرتبة تصاعديًّا. ادمجهما في قائمة واحدة مرتبة دون sorted، واطبع أعلى 3 درجات.←
الوحدة 4: مقدمة في تحليل كفاءة الخوارزميات
الوحدة 5: تحليل الأداء الزمني للخوارزميات
صنّف الدوالمتوسط · الدرس 9: ترميز O الكبير
لكل دالة من الثلاث: عدّ عملياتها بعدّاد لـ
الدالة common تجد العناصر المشتركة بين قائمتين، لكنها O(n²). أعد كتابتها لتكون
لكل دالة من الثلاث: عدّ عملياتها بعدّاد لـ
n = 8 و n = 16، واطبع النسبة بين العددين، ثم اطبع تعقيدها.←اكشف O(n²) المخفية وأصلحهامتقدم · الدرس 10: تعقيد الحلقات والتعقيد اللوغاريتميالدالة common تجد العناصر المشتركة بين قائمتين، لكنها O(n²). أعد كتابتها لتكون
O(n)، وتأكد أن الناتج نفسه.←الوحدة 6: تحليل الأداء المساحي للخوارزميات
الوحدة 7: اختيار تركيب بيانات لحل مشكلة
مصفوفة ديناميكية بنفسكمتقدم · الدرس 12: القوائم وكلفة عملياتها
ابنِ مصفوفة ديناميكية بسيطة: سعة تبدأ بـ 2، وتتضاعف حين تمتلئ. أضف 10 عناصر، واطبع السعة كلما تغيرت، وعدد عمليات النسخ الكلية.←اقلب القائمة المترابطةمتقدم · الدرس 13: القائمة المترابطة
أضف إلى LinkedList دالة reverse تقلب القائمة في المكان بتغيير المؤشرات فقط، دون إنشاء عقد جديدة.←فاحص الأقواسمتوسط · الدرس 14: المكدس والطابور
اكتب دالة
اكتب دالة
أضف إلى كود الشجرة ثلاث دوال:
ابنِ قائمة الجوار للخريطة، ثم اطبع لكل مدينة أقرب مدينة مجاورة لها والمسافة، بترتيب أبجدي للمدن.←
ابنِ مصفوفة ديناميكية بسيطة: سعة تبدأ بـ 2، وتتضاعف حين تمتلئ. أضف 10 عناصر، واطبع السعة كلما تغيرت، وعدد عمليات النسخ الكلية.←اقلب القائمة المترابطةمتقدم · الدرس 13: القائمة المترابطة
أضف إلى LinkedList دالة reverse تقلب القائمة في المكان بتغيير المؤشرات فقط، دون إنشاء عقد جديدة.←فاحص الأقواسمتوسط · الدرس 14: المكدس والطابور
اكتب دالة
balanced(text) تتحقق من توازن الأقواس الثلاثة () و [] و {} في النص، وتتجاهل أي حرف آخر.←أول حرف لا يتكررمتوسط · الدرس 15: القاموس والمجموعة: جداول التجزئةاكتب دالة
first_unique(text) تُرجع أول حرف لا يتكرر في النص، أو None إن لم يوجد، بتعقيد O(n): مرور للعدّ ثم مرور للبحث.←أصغر وأكبر وعدد العقدمتوسط · الدرس 16: شجرة البحث الثنائيةأضف إلى كود الشجرة ثلاث دوال:
smallest(node) و largest(node) بحلقة، و count(node) بالعودية.←أقرب جار لكل مدينةمتوسط · الدرس 17: الرسوم البيانية وتمثيلهاابنِ قائمة الجوار للخريطة، ثم اطبع لكل مدينة أقرب مدينة مجاورة لها والمسافة، بترتيب أبجدي للمدن.←
الوحدة 8: اختيار خوارزمية للحل
ترتيب بمعيارينمتوسط · الدرس 18: مقارنة خوارزميات الترتيب
رتّب المنتجات: الأقل سعرًا أولًا، وعند تساوي السعر الأكثر تقييمًا أولًا، باستخدام sorted ومفتاح واحد.←كم مدينة على بعد محطتين؟متوسط · الدرس 19: البحث في الرسوم: BFS و DFS
عدّل BFS ليحسب المسافة (بعدد الطرق) من المدينة إلى كل مدينة، ثم اطبع المدن على كل مسافة.←
رتّب المنتجات: الأقل سعرًا أولًا، وعند تساوي السعر الأكثر تقييمًا أولًا، باستخدام sorted ومفتاح واحد.←كم مدينة على بعد محطتين؟متوسط · الدرس 19: البحث في الرسوم: BFS و DFS
عدّل BFS ليحسب المسافة (بعدد الطرق) من المدينة إلى كل مدينة، ثم اطبع المدن على كل مسافة.←
الوحدة 9: تطبيق تحسينات على الحلول
أطول سلسلة بلا تكرارمتقدم · الدرس 20: من O(n²) إلى
أطول جزء متصل من سلسلة طلبات العملاء لا يتكرر فيه عميل. اكتب حلًّا
روبوت في الزاوية العليا اليسرى من شبكة
O(n)أطول جزء متصل من سلسلة طلبات العملاء لا يتكرر فيه عميل. اكتب حلًّا
O(n) بنافذة منزلقة وقاموس آخر موقع.←مسارات الشبكةمتقدم · الدرس 21: التخزين المؤقت والبرمجة الديناميكيةروبوت في الزاوية العليا اليسرى من شبكة
4 × 6 يتحرك يمينًا أو أسفل فقط. كم طريقًا إلى الزاوية السفلى اليمنى؟ حلها بجدول البرمجة الديناميكية.←الوحدة 10: تحليل وفهم المشكلات التطبيقية
الوحدة 11: اختيار وتطبيق الحلول المناسبة
أسرع 3 متسابقين أثناء السباقمتوسط · الدرس 23: طابور الأولوية heapq
نتائج سباق تصل واحدة واحدة (الاسم، الزمن بالثواني). احتفظ بكومة كبرى حجمها 3 لأسرع ثلاثة دون ترتيب كل النتائج، ثم اطبعهم من الأسرع.←أقصر طريق من ينبعمتقدم · الدرس 24: الخوارزميات الجشعة وأقصر مسار
استخدم دايكسترا لحساب أقصر مسافة من ينبع إلى الطائف، واطبع المسافة والمسار.←
نتائج سباق تصل واحدة واحدة (الاسم، الزمن بالثواني). احتفظ بكومة كبرى حجمها 3 لأسرع ثلاثة دون ترتيب كل النتائج، ثم اطبعهم من الأسرع.←أقصر طريق من ينبعمتقدم · الدرس 24: الخوارزميات الجشعة وأقصر مسار
استخدم دايكسترا لحساب أقصر مسافة من ينبع إلى الطائف، واطبع المسافة والمسار.←
الوحدة 12: حلول تطبيقية لمشكلات واقعية
تقرير الأحياء والمسافاتمتقدم · الدرس 25: دراسة حالة: نظام توصيل
أضف إلى النظام تقريرًا: عدد الطلبات في كل حي، ومجموع الكيلومترات إن وُصّل كل طلب في رحلة مستقلة ذهابًا وإيابًا.←طابور بقائمة مترابطةمتقدم · الدرس 26: المشروع الختامي
استخدم القائمة المترابطة لبناء طابور: enqueue بالإضافة في الذيل، و dequeue بالحذف من الرأس، ثم حاكِ طابور 5 عملاء يُخدم منهم 3.←
أضف إلى النظام تقريرًا: عدد الطلبات في كل حي، ومجموع الكيلومترات إن وُصّل كل طلب في رحلة مستقلة ذهابًا وإيابًا.←طابور بقائمة مترابطةمتقدم · الدرس 26: المشروع الختامي
استخدم القائمة المترابطة لبناء طابور: enqueue بالإضافة في الذيل، و dequeue بالحذف من الرأس، ثم حاكِ طابور 5 عملاء يُخدم منهم 3.←