ในภาษาการเขียนโปรแกรม C การเรียงลำดับแบบฟองเป็นเทคนิคการเรียงลำดับที่ง่ายที่สุดและเรียกอีกอย่างว่าการเรียงลำดับแบบแลกเปลี่ยน
ขั้นตอนการเรียงลำดับฟอง
-
เปรียบเทียบองค์ประกอบแรกกับองค์ประกอบที่เหลือในรายการและแลกเปลี่ยน (สลับ) หากไม่อยู่ในลำดับ
-
ทำเช่นเดียวกันกับองค์ประกอบอื่นๆ ในรายการจนกว่าองค์ประกอบทั้งหมดจะถูกจัดเรียง
อัลกอริทึม
รับด้านล่างเป็นอัลกอริทึมในการเรียงลำดับรายการตัวเลขที่กำหนดในลำดับจากน้อยไปมากโดยใช้เทคนิคการเรียงลำดับฟอง -
ขั้นตอนที่ 1 − เริ่มต้น
ขั้นตอนที่ 2 − จดรายการ(array) NUM
ขั้นตอนที่ 3 − รายการอ่าน(รายการ,จำนวน)
ขั้นตอนที่ 4 − รายการพิมพ์(รายการ,จำนวน)
ขั้นตอนที่ 5 − bub_sort(รายการ,จำนวน)
ขั้นตอนที่ 6 − รายการพิมพ์(รายการ,จำนวน)
รายการอ่าน (รายการ, num)
ขั้นตอนที่ 7 − หยุด
<ก่อน>1. สำหรับ j =0 ถึง num2 รายการอ่าน[j].รายการพิมพ์(รายการ,จำนวน)
<ก่อน>1. สำหรับ j =0 ถึง num2 เขียนรายการ[j].bub_sort(รายการ,จำนวน)
<ก่อน>1. สำหรับฉัน =0 ถึง num2 สำหรับ j =0 ถึง (num – i)3 ถ้า( รายการ[j]> รายการ[j+1])4. swapList( ที่อยู่ของรายการ[j], ที่อยู่ของรายการ[j+1])swapList( ที่อยู่ของรายการ[j], ที่อยู่ของรายการ[j+1])
<ก่อน>1. temp =ค่าที่ list[j]2. ค่าที่รายการ[j] =ค่าที่รายการ[j+1]3 ค่าที่รายการ[j+1] =อุณหภูมิตัวอย่าง
ต่อไปนี้เป็นโปรแกรม C เพื่อ เรียงลำดับรายการตัวเลขตามลำดับจากน้อยไปมากโดยใช้เทคนิคการเรียงลำดับแบบฟอง −
#include#define MAX 10void swapList(int *m,int *n){ int temp; อุณหภูมิ =*m; *m =*n; *n =temp;}/* ฟังก์ชันสำหรับ Bubble Sort */void bub_sort(int list[], int n){ int i,j; for(i=0;i<(n-1);i++) for(j=0;j<(n-(i+1));j++) if(list[j]> list[j+1]) swapList(&list[j],&list[j+1]); } รายการอ่านเป็นโมฆะ (รายการ int [], int n) { int j; printf("\nป้อนองค์ประกอบ:\n"); สำหรับ(j=0;j
ผลลัพธ์
เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −
ป้อนจำนวนองค์ประกอบ10ป้อนองค์ประกอบ:11234513635691022องค์ประกอบในรายการก่อนที่จะเรียงลำดับคือ:11 23 45 1 3 6 35 69 10 22องค์ประกอบในรายการหลังจากจัดเรียงคือ:1 3 6 10 11 22 23 35 45 69