فرز فقاعي
المحتويات

قبل الخوض في التفاصيل، الفرز الفقاعي هي خوارزمية ترتيب منتقدة لبطئها ، هي تعمل على رفع العنصر الأكبر كفقاعة الهواء التي ترتفع إلى أعلى وذلك بترتيب العناصر بتتابع، أي نقوم بمقارنة العنصرين الأول والثاني، ونحتفظ بالعنصر الأكبر، ونبدل الأماكن إذا كانا غير مرتبين، ونقوم بهذه العملية إلى آخر عنصر، ولاحقًا نعيد العمليات إلى المكان ما قبل الأخير وهكذا دواليك، ثم نتوقف عند وجود جدول بالبعد 1 أو عندما لا نقوم بالتبديلات عند آخر عملية. وفيما يلي تفاصيل أوسع عن ذلك.
- لترتيب N عناصر في المصفوفة A ، عدد المقارنات سيكون: .
- أما عدد التبديلات فهو في المتوسط . حيث N هي عدد العناصر.
- تعقيد الخوارزم هو في المعدل، و في الحالة المثلى.
System.out.println;
- for (int x = name.length - 1 ; x > 0; x--) {
- for (int y = 0; y < name.length-1; y++) {
- int temp = name[y];
- int temp2 = name[y+1];
- if(name[y] > name[y+1]) {
- name[y] = temp2;
- name[y+1]= temp ;
}
for (int v = 0; v < name.length; v++)
System.out.print(name[v]+" ");
swapped := false
- for each i in 0 to length(A) - 2 inclusive do:
- if A[ i ] > A[ i + 1 ] then
- swap(A[ i ], A[ i + 1 ])
- swapped := true
- end if
- end for
- while swapped
- end procedure
int a = 0 ;
for (int x = 0; x < name.length; x++)
System.out.print(name[x]+" ");
int i، j، tmp;
- for(i = 1 ; i < MAX ; i++)
- for(j = 0 ; j < MAX - i ; j++)
- if(t[j] > t[j+1]) {
- tmp = t[j+1];
- t[j+1] = t[j];
- t[j] = tmp;
- }
- }
- كود ترتيب الفقاعات بلغة Java
- [MAX];
- public class Bubble_sort {
- /**
- * @param args
- */
- public static void main(String[] args) {
- int name[]= {20,10,-5,6,2,1};
في الاستخدام العملي
كذلك، مع أن ترتيب الفقاعات هو أحد أسهل الخوارزمات للفهم والتطبيق، إلا أن تعقيده الزمني يجعل كفائته تقل كلما زاد طول المدخل، هذا يجعل منه خوارزم غير ملائم لترتيب مصفوفات كبيرة. خوارزمات أخرى بتعقيد مثل الترتيب بالإدراج تتمكن من حل المشكلة بكفائة أعلى.
- ترتيب الفقاعات بلغات مختلفة
- كود ترتيب الفقاعات بلغة C
- typedef int tab_entiers[MAX];
- void bubble_sort(tab_entiers t) {
وفي هذا السياق، بسبب بساطة الخوارزم يتم استخدامه كأول مثال لخوارزم ترتيب يتعلمه طلاب علم الحاسوب. لكن بعض الباحثين مثل Owen Astrachan ينصحون بالابتعاد عن هذا الخوارزم وعدم استخدامه حتى في التعليم.Owen Astrachan. Bubble Sort: An Archaeological Algorithmic Analysis. SIGCSE 2003 Hannan Akhtar . (pdf)
علاوةً على ذلك، قاموس The Jargon File الذي سمى خوارزم Bogosort ب«المثال الأعلى لخوارزم شنيع» سمى خوارزم الترتيب بالفقاعات «خوارزم سيء». في كتاب فن برمجة الحاسوب يستنتج دونالد كانوث «لا يوجد سبب للنظر في خوارزم ترتيب الفقاعات الا اسمه الجميل وكونه يولد بعض المشاكل النظرية المثيرة للاهتمام», ثم يقوم بذكر بعض هذه المشاكل النظرية.
System.out.println;
- System.out.println("the num of changes of the array is "+a);
- }
- }
- }
- }
a++ ;
- for (int m = 0; m < name.length; m++)
- System.out.print(name[m]+" ");
- System.out.println;
- }
- } System.out.println;
خوارزمية الفرز الفقاعي
do
وفي هذا السياق، procedure bubbleSort(A : list of sortable items) defined as:
📝 هل في هذه المقالة خطأ؟
إذا وجدت معلومة تحتاج تصحيحاً أو إضافة، أو أردت حذف المقالة، أرسل لنا طلباً وسنراجعه.
ما رأيك في هذه المقالة؟