الكود النضيف مش بييجي من حفظ syntax، ده بييجي من ترتيب دماغك قبل ما تكتب سطر واحد. ودي من أهم الحاجات ال اتعلمتها من بشمهندس Ahmed Metwally
البوست ده هتكلم فيه عن تجربتي في كورس الAlgorithms في التطبيق وتعميق الفهم للأساسيات ال بدوره بينمي عندك مهارة التفكير البرمجي لما بتتعرض للمشاكل ال اتبنى عليها الكود لكل ألجوريزم.
عندك مثلا في ال Greedy Algorithm بيدخل في problems مشهورة زي:
- Activity Selection Problem طريقة لحل مشكلة اختيار أكبر كمية من الtasks أو الactivities الممكنة من الداتا ال معايا.
- Huffman Coding Algorithm الفكرة بتاعته هي ضغط عدد الbits المستخدمة في تمثيل ال الداتا ال معايا عن طريق أكواد جديدة مختصرة هديها لكل حرف.
- Fractional Knapsack Problem و دي بروبلم ليها تطبيقات كتيرة واختصارا هي استخدام علاقة ما بين شيء معين والprofit بتاعته أو تكلفته فا بقدر اطلع بأكتر items بتعملي أكبر بروفيت
المفهوم التاني:
الDynamic Programming وهي طريقة لتقليل الحسابات المتكررة في مشاكل الoptimization Code - عندنا فيه بربولم شهيرة هي Stagecoachعشان أوصل لأقصر طريق بالطريقة بتاعتنا دي لازم هنا أحسب كل الطرق الممكنة ولكن طريقة الdynamic programming هتخليني محسبش الحسابات المتكررة أكتر من مرة عن طريق تقسيمها لأجزاء ونتيجة حل كل جزء هستخدمه مش هقعد احسب نفس الجزء تاني في سكة تانية بتمشي في نفس الجزء
وهتكفي في البوست بتالت حاجة وهي الGraph
مفهوم الGraph عشان اتعامل معاه ونمثله كألجوريزم بنستخدم الadjacency matrix أو الadjacency list ال بتستخدم الlinked list في وصف الجراف - ولتبسيط الجراف بنستخدم ال Minimum Spanning Tree لتقليل عدد الedges وعشان نجيب أقصر طريق في الجراف طبقنا Prim’s MST Algorithm و Breadth First Search و Depth First Search و Dijkstra’s Shortest Path
المفاهيم دي تقيله ومحتاجة كلام أكتر من كدة أنا عارف بس قولت أدردرش شوية وأثبتها معاكم, وده لينك الريبو للكود الخاص بيا من الكورس عشان لو حد عاوز يبص على جزئية ما في الكود أنا مقسم كل حاجة في فولردر خاص بيها
https://lnkd.in/dZqsu5eB
نفعني الله وإياكم بما تعلمنا وزادنا علما