خورازمية الترتيب الفقاعي هي خوازمية لترتيب العناصر ضمن المصفوفة على طريقة الفقاعات في الماء :-)
الطريقة هي جعل العناصر الاكبر تطفو على العناصر الأصغر:
سنطرح مثال لشرح هذه الخوارزمية :
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 لخوارزمية الترتيب الفقاعي:
التعليقات