شرح خوارزميات الفرز
خوارزميات الفرز هي مجموعة من التعليمات التي تأخذ مصفوفة أو قائمة كمدخلات وترتب العناصر في ترتيب معين.
تكون الأنواع الأكثر شيوعًا في الترتيب العددي أو الأبجدي (يسمى معجمي) ، ويمكن أن تكون بترتيب تصاعدي (AZ ، 0-9) أو تنازليًا (ZA ، 9-0).
لماذا الفرز الخوارزميات مهمة
نظرًا لأن الفرز غالبًا ما يقلل من تعقيد المشكلة ، فهو خوارزمية مهمة في علوم الكمبيوتر. تحتوي هذه الخوارزميات على تطبيقات مباشرة في خوارزميات البحث وخوارزميات قواعد البيانات وطرق التقسيم والقهر وخوارزميات بنية البيانات وغيرها الكثير.
بعض خوارزميات الفرز الشائعة
بعض خوارزميات الفرز الأكثر شيوعًا هي:
- اختيار نوع
- فقاعة الفرز
- ترتيب بالإدراج
- دمج الفرز
- فرز سريع
- نوع كومة
- فرز الفرز
- فرز الجذر
- فرز دلو
تصنيف خوارزمية الفرز
يمكن تصنيف خوارزميات الفرز بناءً على المعلمات التالية:
- استنادًا إلى عدد المقايضات أو الانعكاس هذا هو عدد المرات التي تتبادل فيها الخوارزمية العناصر لفرز المدخلات.
Selection Sort
يتطلب الحد الأدنى من عدد المقايضات. - استنادًا إلى عدد المقارنات هذا هو عدد المرات التي تقارن فيها الخوارزمية العناصر لفرز المدخلات. باستخدام تدوين Big-O ، تتطلب أمثلة خوارزمية الفرز المذكورة أعلاه
O(nlogn)
مقارنات على الأقل في أفضل حالةO(n^2)
ومقارنات في أسوأ الحالات لمعظم المخرجات. - على أساس العودية أو غير العودية بعض خوارزميات الفرز ، مثل
Quick Sort
، استخدام التقنيات العودية لفرز المدخلات. خوارزميات الفرز الأخرى ، مثلSelection Sort
أوInsertion Sort
، تستخدم تقنيات غير تكرارية. أخيرًا ، تستخدم بعض خوارزمية الفرز ، مثلMerge Sort
، تقنيات متكررة وغير متكررة لفرز المدخلات. - استنادًا إلى خوارزميات فرز الاستقرار ، يُقال
stable
إن الخوارزمية تحافظ على الترتيب النسبي للعناصر ذات المفاتيح المتساوية. بعبارة أخرى ، يظل عنصران مكافئان بنفس الترتيب في الإخراج الفرز كما كانا في الإدخال. Insertion sort
،Merge Sort
وBubble Sort
مستقرةHeap Sort
وQuick Sort
ليست مستقرة- استنادًا إلى خوارزميات الفرز لمتطلبات المساحة الإضافية ، يُقال
in place
إن كانت تتطلبO(1)
مساحة إضافية ثابتة للفرز. Insertion sort
وQuick-sort
هيin place
نوع ونحن نتحرك العناصر حول محور ولا فعلا استخدام مجموعة منفصلة وليس هذا هو الحال في النوع دمج حيث يجب تخصيص حجم المدخلات مسبقا لتخزين الانتاج خلال هذا القبيل.Merge Sort
هو مثال علىout place
نوع ما لأنه يتطلب مساحة ذاكرة إضافية لعملياته.
أفضل تعقيد زمني ممكن لأي فرز قائم على المقارنة
أي خوارزمية فرز تعتمد على المقارنة يجب أن تجري مقارنات nLog2n على الأقل لفرز مصفوفة الإدخال ، وفرز Heapsort ودمج الفرز هما نوعان مقاربان مثاليان للمقارنة ، ويمكن إثبات ذلك بسهولة من خلال رسم مخطط شجرة القرار.