يعد Selection Sort خوارزمية فرز بسيطة وبديهية. مبدأ الخوارزمية الخاص بها هو العثور أولاً على أصغر (أكبر) عنصر في التسلسل غير المصنف، وتخزينه في موضع البداية للتسلسل الذي تم فرزه، ثم تحديده من العناصر المتبقية التي لم يتم فرزها للبحث عن العنصر الأصغر (الأكبر) بين العناصر وتخزينه في نهاية التسلسل المفرز، وهكذا حتى يتم فرز جميع العناصر.
يوجد إجمالي "عدد المصفوفات - 1" من جولات فرز التحديد، وكل جولة فرز عبارة عن دورة. قواعد الدورة هي كما يلي:
1) افترض أولاً أن الرقم الأول في الدورة الحالية هو الرقم الأصغر.
2) ثم قارنه مع كل رقم لاحق فإذا وجد أن هناك رقماً أقل من الرقم الحالي، أعد تحديد العدد الأدنى واحصل على المنتصف.
3) عند العبور إلى نهاية المصفوفة، يتم الحصول على أصغر عدد من هذه الجولة.
4) التبادل مع الرقم الأول من الحلقة الحالية.
على سبيل المثال:
importjava.util.Arrays;publicclassMain{publicstaticvoidmain(String[]args){int[]arr=newint[]{19,26,8,35,41,77};for(inti=0;i<arr.length- 1;i++){// ستجد كل حلقة أصغر رقم intminIndex=i;// سجل أدنى رقم intminNum=arr[i];// سجل أصغر رقم for(intj=i+1;j< arr.length;j++){// ستجد كل حلقة أصغر رقم if(arr[j]<minNum){// إذا كان الرقم الحالي أصغر من الحد الأدنى للرقم، فقم بتحديث الحد الأدنى للرقم minNum=arr[j]; // تحديث الحد الأدنى للرقم minIndex=j;// تحديث الحد الأدنى للرقم}} arr[minIndex]=arr[i];// ضع الحد الأدنى للرقم في المقدمة arr[i]=minNum;//ضع بت العلم إلى الموضع الأصلي للحد الأدنى للرقم}for(inti=0;i<arr.length;i++){System.out.println(arr[i]);}}}
نتائج التشغيل هي كما يلي:
81926354177