خورازمية الترتيب الفقاعي هي خوازمية لترتيب العناصر ضمن المصفوفة على طريقة الفقاعات في الماء :-)
الطريقة هي جعل العناصر الاكبر تطفو على العناصر الأصغر:
سنطرح مثال لشرح هذه الخوارزمية :
array=[50,20,100,30,40,20,33,99,1,0]
لدينا هذه المصفوفة والان سنبدا عملية الطفو :) عملية الطفو تبدأ من اليسار إلى اليمني
50 20 => 20 50 20 100 =>20 100 100 30 =>30 100 100 40 => 40 100 100 20 =>20 100 100 33=> 33 100 100 99=>99 100 100 1 =>1 100 100 0 =>0 100 100 طفت على السطح :-) newArray=[20,50,30,40,20,33,99,1,0,100]
وهكذا في الخطوة الاولى من خلال المقارنة بين كل عنصرين متجاورين ورفع العنصر الاكبر 100 طفت الى السطح:
اذا قمنا بتكرار عملية الطفو عدد من المرات يساوي طول المصفوفة -1 فاننا سنضمن ان العناصر كاملة ستطفو بالترتيب وسنحصل على المصفوفة مرتبة
هذا كود مثال عن خوارزمية الفقاعية على لغة الجافا السكريبت:
function bubbleSort(array) {
// Only change code below this line
let n=array.length;
let temp;
for(let i=0;i<n;i++){
for(let j=0;j<n-1;j++){
if(array[j+1]<array[j]){
temp=array[j]
array[j]=array[j+1]
array[j+1]=temp
}
}
}
return array;
// Only change code above this line
}
let arr=[19,81,52,5,22,6,55,2,5,2,5,2,7,5,6,5,55,4,64,445]
وهذه الصورة flowchart لخوارزمية الترتيب الفقاعي:
التعليقات