في يومٍ ما دخلتُ إلى إحدى القاعات بالجامعة، لا أذكرُ كم كان الوقتُ حينها ولكنّي أذكرُ أنّ قلبي كان منقبضاً.
كانت تلك المحاضرة هي أولى محاضرات الخوارزميات.
رُبّما تكونُ تلك المحاضرة قد تمّت كما يجب، ولكنّي كُنت مُحمّلاً بالسمعة التي تمتلكها الرياضيّات عموماً والخوارزميات خصوصاً. ألم تسمع بأن الخوارزميات صعبة وما شابه ذلك؟

نعم، كان هذا انطباعي … إلى بعد عدة محاضرات
تفاجأت بأن الخوارزميات منهجُ تفكير أكثرُ منها رياضيات، وحسابُ نتائج منطقية بكثرة. فيها المتعة و التطبيق.
بعد عدة تمارين تغيّرت نظرتي عنها تماماً.. إلى الأفضل.
هل تعلم ما هي الخوارزمية؟
هذا هو تعريفُ الخوارزمية وفقاً لموقع ويكيبديا

إذاً الخوارزمية هي مجموعة من الخطوات لحل مشكلة ما، تذكّر هذا التعريف
كتبتُ عن بعض خوارزميات الترتيب سابقاً، إن لم تكن تعرف ما هي خوارزميات الترتيب إطلع على التدوينات التالية:
- خوارزمية الترتيب الفقاعي | Bubble Sort Algorithm.
- خوارزمية الترتيب بالإختيار: الشرح السهل مع التنفيذ.
- خوارزمية الترتيب بالإدخال: شرح رائع و تحليل الخوارزمية.
الشاهد في الأمر أن الخوارزميات أمرها شيّق جداً، ولكنها في نفس الوقت ليست بتلك البساطة إطلاقاً، فما دام بالأمر خطوات و حسابات فلا بُد من الفهم والتدريب و التجارب.
ولكن…
أثناء تصفحي لبعض المواضيع الخاصة بالخوارزميات مررتُ على إحدى الخوارزميات التي أضحكتني وأثارت دهشتي في نفس الوقت.
هذه الخوارزمية هي عنوانُ هذه التدوينة، خوارزمية الترتيب الغبية stupid sorting algorithm والتي لها مسمياتٌ أخرى تُنبئك عن مدى غبائها، من هذه الأسماء monkey sort و shotgun sort و slowsort.
سأشرحُ لك فكرةُ هذه الخوارزمية في جملة واحدة
إذا لم تكن المصفوفة مرتّبة فبعثر عناصرها داخل المصفوفة عشوائياً
وإذا حاولنا وضع خطوات لخوارزمية الترتيب الغبية ستكون كالتالي:
- احذف جميع عناصر المصفوفة.
- أعد إدخال العناصر عشوائياً.
- إذا لم تكن مرتبة عُد إلى الخطوة 1.
فقط !!!
تعجّبتُ للمجهود اللازم لإختراع هكذا خوارزمية بهذا المفهوم البسيط، شيءٌ عجيب في عالم الخوارزميات، فهي من السوء أن أداءها (!O(n. أليس عجيباً؟
ولكن، في رأيك، هل تستحق خوارزمية الترتيب الغبية أن تُعتبر خوارزمية؟
وما هو شعورُك تجاه هذه الخوارزمية؟
مقالة صغيرة ، ومبسطة ، ومشوقة فعلاً.
شكراً لتعليقك
بارك الله فيك استاذ مصطفى علي هذا العمل الخيري الذي لا تريد من وراه الا الخير سعادنا كثير الكثير.
نشكرك علي هذا المجهود.
وبارك فيك موسى، أتمنى أن تكون قد وجدت الفائدة في مدونة علوم
السلام عليكم ورحمة الله وبركاته
في البداية اتقدم بالشكر الجزيل للسيد مصطفى الخطيب على هذا الجهد الرائع المبارك واتمنى له دوام التوفيق والتألق .
اود حفظ التواصل معكم عبر هذا الموقع لانهل من علوم الحاسوب الكثير . يقينا مني انكم سوف ترفدون احبابكم ومتابعيكم بكل ما هو مفيد في علم الحاسوب … وفقكم الله ورعاكم
الداعي لكم .. عبدالله السويلماوي .. العراق البصرة
بارك الله فيك اخوي ولكن ما هو (!O(n؟؟
وبارك فيك أخي سالم، هذه في الخوارزميات تُسمى بـ Big O ومعناها مقارب لأسوأ حالة من الممكن أن تصل لها المعادلة الموجودة بين القوسين.
كيف نقول للكمبيوتر رتب المصفوفة عشوائيا هههههههههه بالتأكيد سينتحر الحاسب الآلي وإذا فرضنا أنه قام بهذه العملية فكم التكرار سيلزمه ذلك حتى تصبح االمصفوفة مرتبة
إذا نطق الحاسب لقال لماذا وُجدت الخوارزميات إذاً 🙂
(!O(n عبارة عن إنتحار!
تعجبني جدا هذه الخوارزميات