Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

โปรแกรม C เพื่อเรียงลำดับรายการตัวเลขโดยเรียงลำดับจากน้อยไปมากโดยใช้ Bubble sort


ในภาษาการเขียนโปรแกรม 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