أنا مش بهوى العشوائية، بحب الحاجة تبقى مترتبة، لما أدور على حاجة، مش بلف على كل العناصر، بقسم القائمة نصين، وأشوف هدفي فين، لو كان في الأول، بسيب اللي بعده، ولو كان في الآخر، بنسى اللي قبله، بكمل كده لحد ما أوصل بسرعة البرق، بتلاقيني في محركات البحث، الألعاب، وهياكل البيانات الفعالة! أنا مين؟ -Binary Search أنا بحب الترتيب، بس مش بشتغل بالعافية، بدل ما أقعد أبدّل كل حاجة زي الفقاعات، بقلب النظام وأبدأ أفرّق الحبايب، أقسم كل حاجة نصين، لحد ما تبقى فتافيت صغيرة، وبعدها أبدأ أجمّعهم بذكاء، كل مرة أدمج اتنين مترتبين، لحد ما يبقى الكل تمام، أنا مش الأسرع في كل الحالات، لكني مضمون وفعال في القوائم الكبيرة! أنا مين؟ -Merge Sort بيحتاجوني في حل المشاكل المعقدة عشان بوفر وقت لاني بخزن نتائج العمليات من اول مرة ف لو اتكررت العملية مش بعيد حسابها تاني -Dynamic Programming أنا طابور بس مش زي أي طابور، مش أول واحد يدخل هو اللي يخرج الأول، أنا بفضّل الناس حسب أهميتهم، اللي ليه أولوية يخرج قبل التاني، الطبيب في المستشفى، والمهام في نظام التشغيل، كلهم بيحبوني، ولو احتاجتني، هساعدك ترتّب الحاجات حسب الأهمية! أنا مين؟ -Priority Queue أنا حاجة بتحب الترتيب، بس مش أي ترتيب! أول واحد ييجي، يبقى آخر واحد يمشي! لو دخلت حاجة، لازم اللي بعدها تستنى فوقيها، ولما تيجي تطلع، لازم اللي فوق يطلع الأول! بتوع البرمجة بيحبوني عشان بفيدهم في الـ Undo و Backtracking، وفي المتصفحات أنا اللي بخزن الصفحات اللي زرتها قبل كده! أنا مين؟ -Stack أنا نظام منظم ومفيش عندي زحمة، اللي ييجي الأول.. يمشي الأول، مفيش وسايط ولا لعب في الدور، بتلاقيني في طوابير السينما والبنوك، ولو سألت عني في البرمجة، هتلاقيني في الطابعات والـ CPU Scheduling! -Queue أنا بحب الاختيارات السريعة، مش بستنى أشوف المستقبل، بأختار الأحسن دلوقتي مش دايماً بحقق الحل المثالي، بس بحاول أكون قريب _Greedy Algorithm أنا شاطر في التشفير، وبحب الاختصارات، بشوف الحروف اللي بتتكرر كتير، وأديها كود صغير، واللي مش بتتكرر كتير، كودها بيبقى أطول شوية، أنا بضغط البيانات بطريقة ذكية، وأوفّر في المساحة بشكل عبقري، عرفت انا مين؟ -Huffman Coding أنا شجرة بس مش أي شجرة، كل فرع عندي له فرع أو اتنين بس، مش أكتر، بحب انظم البيانات وأرتبها، علشان البحث يبقى أسرع، لو سألت عني، هتلاقيني في الذكاء الاصطناعي، أنظمة البحث، وضغط البيانات، ولو استخدمتني صح، هتنجز في وقت ولا أروع! تفتكر انا مين؟ -Binary Tree أنا شبكة من النقاط، وكل نقطة تقدر توصل للتانية، مفيش عندي كبير، ومش شرط يكون فيَّ جذر زي الشجرة، ممكن تلف وتدور وترجع لنفس المكان، وفيَّ طرق قصيرة وطرق طويلة، واللي عاوز يوصل بسرعة لازم يفكر بذكاء! بتلاقيني في خرائط جوجل، شبكات الإنترنت، وتحليل العلاقات الاجتماعية، يبقى انا مين؟ -Graph أنا بحب الترتيب، بس مش أسرع واحد في اللعبة، بفضل ألف على العناصر وأبدّلهم لو حد فيهم مكانه غلط، كل ما ألف أكتر، الكبيرة بتطفو زي الفقاعة لفوق، والصغيرة تفضل تنزل لتحت، لحد ما يبقى كله تمام، بس المشكلة إني بغرق في المقارنات، وأخد وقت طويل مع القوائم الكبيرة! بتلاقيني في التعليم كبداية لفهم الترتيب، بس مش في التطبيقات السريعة! أنا مين؟ 🤔 -Bubble sort أنا المرشد الذكي اللي بيعرف أقصر طريق، بدور في كل الاتجاهات، بس دايماً بأخد الطريق الأريح، كل ما أعدي على نقطة، بحدث المسافة وأقارن، (GPS،خرائط جوجل، وشبكات الإنترنت)عشان أوصل لهدفي بأقل تكلفة وأسرع وقت,بتلاقيني في ، ولو استخدمتني، هتلاقي أسرع طريق بدون لف ودوران! -Dijkstra’s Algorithm أنا بحب الدقة، ومبحبش البيانات تضيع، لو بدأت شغلي، لازم أخلصه صح أو مبشتغلش خالص، لازم كل حاجة تبقى متسقة ومتوازنة، ومحدش يتدخل أثناء شغلي إلا لما أخلص، ولو حصلت مشكلة، برجع كل حاجة زي ما كانت! أنا مين؟ -ACID Transactions أنا بحب البيانات تكون مرتبة بدون تكرار، بقسم الجداول وأربطهم بعلاقات، كل ما أعمل شغلي صح، المساحة بتقل، والأداء بيزيد، والاستعلامات بتبقى أسرع، لكن لو زودتها شوية، الدنيا تتعقد وممكن يحصل JOIN كثير! -Normalization أنا مش بحب الجداول، ولا أعمدة وصفوف، بحب التخزين الحر، بدون قيود أو شروط، في بعض الأحيان بكون زي الملفات (Documents)، وأوقات تلاقيني زي الخرائط (Key-Value)، أنا الأسرع في التعامل مع البيانات الضخمة والشبكات الاجتماعية! -NoSQL Database أنا بحب السرعة، ومبحبش أدور كتير، لو سألتني عن حاجة، مش هلف في كل البيانات، عندي كتالوج خاص بي، بيدلني على المكان المطلوب، بساعد في تسريع البحث، لكن لو زادت مني، ممكن أخد مساحة زيادة! أنا مين؟ 🤔 -Indexing أنا لما أظهر، كل العمليات بتقف، كل واحد ماسك في اللي قدامه، ومش عايز يسيب، كل واحد مستني التاني يخلص، والتاني مستنيه، لكن محدش فينا هيخلص الأول، عشان كده المطورين بيحاولوا يتجنبوني! -Deadlock إحنا مفتاحين، بس مش زي بعض، واحد فينا بيحدد كل صف لوحده، والتاني بيربط الجداول ببعض، بيقول مين تابع لمين، واحد بيمنع التكرار، والتاني بيساعد في العلاقات، إحنا أساس الترابط في قواعد البيانات العلائقية! إحنا مين؟ 🤔 -Primary Key & Foreign Key