عن المشروع
هذا المستودع هو مجموعة منسقة من تطبيقات الخوارزميات وهياكل البيانات المكتوبة بلغة Java، مصممة لإظهار تطبيقات صحيحة وأنيقة للتقنيات الحسابية الشائعة. وهو بمثابة مكتبة مرجعية ومورد تعليمي للمطورين والطلاب.
يغطي المشروع مجموعة واسعة من المواضيع مقسمة إلى أقسام رئيسية:
**هياكل البيانات**: تتضمن الأشجار المتوازنة (AVL، الأحمر-الأسود)، أشجار البحث الثنائية، أشجار سلاي، المصفوفات الديناميكية، أشجار فينويك، أكوام فيبوناتشي، جداول التجزئة (مع استراتيجيات متعددة لحل التصادم)، القوائم المرتبطة، طوابير الأولوية (الكومة الثنائية، كومة D، المتغيرات المفهرسة)، الطوابير، أشجار القطاعات، الجداول المتناثرة، الأكوام، مصفوفات اللواحق، الأشجار الثلاثية، وهياكل الاتحاد-البحث.
**البرمجة الديناميكية**: تتضمن مشاكل كلاسيكية مثل تغيير العملات، مسافة التحرير، متغيرات حقيبة الظهر، أقصى مصفوفة فرعية متصلة، أطول تتابعات مشتركة/متزايدة/متناظرة، مشكلة البائع المتجول، والحد الأدنى من التطابق المثالي الموزون. كما تتضمن أمثلة عملية مثل مشاكل التبليط وتحديات مخصصة.
**الهندسة**: تغطي عمليات المتجهات ثنائية وثلاثية الأبعاد، خوارزميات تقاطع الدوائر والخطوط، أقرب زوج من النقاط، بناء الهيكل المحدب (مسح غراهام وسلسلة رتيبة)، مساحة المضلع وفحوصات الاحتواء، حسابات مساحة المثلث، وحسابات المسافة الجغرافية.
**نظرية الرسم البياني**: قسم كبير يتضمن خوارزميات الأشجار (التأصيل، التماثل، المركز، القطر، LCA)، خوارزميات تدفق الشبكة (فورد-فولكرسون، إدموندز-كارب، دينيك، توسيع السعة، الحد الأدنى للتكلفة والحد الأقصى للتدفق)، والخوارزميات الأساسية مثل BFS، DFS، ديكسترا، بيلمان-فورد، فلويد-وارشال، الفرز الطوبولوجي، الأشجار الممتدة الدنيا (كروسكال، بريم، بوروفكا)، المكونات المتصلة القوية (تارجان، كوساراجو)، نقاط الالتحام، الجسور، والمسارات الأويلرية.
**الجبر الخطي**: يتضمن حذف غاوس، عمليات المصفوفات (المحدد، المعكوس، الضرب، الأس)، خوارزمية فريفالد، وحلول التكرارات الخطية.
**الرياضيات**: تغطي مواضيع نظرية الأعداد بما في ذلك نظرية الباقي الصيني، مناخل الأعداد الأولية، دالة أويلر، خوارزمية إقليدس الموسعة، GCD، وتحويل فورييه السريع.
يستخدم المشروع Bazel كنظام بناء (يتطلب JDK 8+)، مع تعليمات واضحة لتشغيل الخوارزميات الفردية أو مجموعة الاختبارات الكاملة. تتضمن العديد من التطبيقات شروحات فيديو مصاحبة على قناة William Fiset على يوتيوب، مما يجعله متاحًا للمتعلمين البصريين. يتضمن كل إدخال خوارزمية عادةً تعقيده الزمني، والكود منظم حسب الموضوع مع اصطلاحات تسمية متسقة. المستودع مرخص بموجب MIT ويتضمن شارات CI/CD لاختبارات Bazel وفحص عنوان README.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.