يقوم مبدأ خوارزمية الترتيب بالاختيار على البحث على العنصر الأصغر في المصفوفة ثم سحبه إلى بداية المصفوفة
بعدها ننتقل للخطوة التالية بالبحث على العنصر الأصغر التالي في المتبقي من المصفوفة وهكذا حتى تترتب كامل المصفوفة :
نشرح الخوارزمية بالاعتماد على المثال:
Array=[1,2,0,-3,3,-4,10] first step : least of [1,2,0,-3,3,-4,10]=-4 => swap 1,-4 newArray=[-4,2,0,-3,3,1,10] second step: least of [2,0,-3,3,1,10]=-3 => swap 2 ,-3 newArray=[-4,-3,0,2,3,1,10] 3rd: least of [0,2,3,1,10]=0 => Do nothing 4th: least of [2,3,1,10]=1 =>swap 2,1 newArray=[-4,-3,0,1,3,2,10] 5th: least of [3,2,10]=2 => swap 2,3 newArray=[-4,-3,0,1,2,3,10] 6th: least of[3,10]= 3 => Do Nothing 7th: We Done result=[-4,-3,0,1,2,3,10]
كود بالجافا السكريبت للخوارزمية :
function selectionSort(array) { let min=100000; let temp=0; for(let j=0;j<array.length;j++){ min=array[j]; temp=0; for (let i=j;i<array.length;i++){ if(min>array[i]){ min=array[i] temp=array[j] array[j]=array[i] array[i]=temp } } } // Only change code below this line return array; // Only change code above this line } console.log(selectionSort([0,2,-2,-9,10,2,0,-3]))
مخطط flowchart الخورازمية :