تقسم خوارزمية فرز التحديد المصفوفة إلى قسمين: الجزء المفرز والجزء غير المفرز. في البداية، يكون الجزء المفرز فارغًا، والجزء غير المفرز يحتوي على كافة العناصر. تعمل الخوارزمية من خلال العثور على العنصر الأصغر (أو الأكبر، اعتمادًا على ترتيب الفرز) من الجزء غير المصنف واستبداله بالعنصر الأول من الجزء غير المصنف. تستمر هذه العملية حتى يتم فرز المصفوفة بأكملها.
#Suppose we have the following array: arr = [64, 25, 12, 22, 11]
المصفوفة بعد التمريرة الأولى: [11, 25, 12, 22, 64]
المصفوفة بعد التمريرة الثانية: [11, 12, 25, 22, 64]
المصفوفة بعد التمريرة الثالثة: [11, 12, 22, 25, 64]
المصفوفة المرتبة النهائية: [11، 12، 22، 25، 64]
def selection_sort(arr): # Traverse through all array elements for i in range(len(arr)): # Find the minimum element in the remaining unsorted part min_index = i for j in range(i 1, len(arr)): if arr[j]المصفوفة المرتبة: [11، 12، 22، 25، 64]
التعقيد الزمني لفرز التحديد:
أفضل حالة: O(n²)
متوسط الحالة: O(n²)
أسوأ حالة: O(n²)
على الرغم من أن فرز التحديد يؤدي أداءً جيدًا لمجموعات البيانات الصغيرة، إلا أنه ليس مثاليًا للصفائف الأكبر حجمًا لأن تعقيده الزمني هو O(n²). ومع ذلك، فهو سهل التنفيذ ويمكن أن يكون مفيدًا في الحالات التي تكون فيها الذاكرة مشكلة، حيث أن فرز التحديد يكون في مكانه (لا يتطلب ذاكرة إضافية).
المزايا:
سهلة الفهم والتنفيذ.
يحقق أداءً جيدًا في القوائم الصغيرة.
لا يتطلب ذاكرة إضافية لأنه يقوم بفرز المصفوفة في مكانها.
العيوب:
غير فعال بالنسبة لمجموعات البيانات الكبيرة بسبب تعقيد الوقت O(n²).
إنها ليست خوارزمية فرز مستقرة، مما يعني أن العناصر المتساوية قد لا تحافظ على ترتيبها بالنسبة لبعضها البعض.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3