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

โปรแกรม C เรียงลำดับตัวเลขจากน้อยไปมากด้วย Bubble Sort

ในภาษา C Bubble Sort เป็นเทคนิคการเรียงลำดับที่ง่ายที่สุด เรียกอีกอย่างว่า Exchange Sort

ขั้นตอน Bubble Sort

  • เปรียบเทียบองค์ประกอบแรกกับองค์ประกอบที่เหลือ สลับที่ถ้าอยู่ในลำดับผิด
  • ทำซ้ำกับองค์ประกอบอื่นๆ จนกว่าจะเรียงครบ

อัลกอริทึม

อัลกอริทึมเรียงลำดับจากน้อยไปมากด้วย Bubble Sort:

ขั้นตอน 1 - เริ่ม

ขั้นตอน 2 - รับลิสต์ (array), num

ขั้นตอน 3 - readlist(list,num)

ขั้นตอน 4 - printlist(list,num)

ขั้นตอน 5 - bub_sort(list,num)

ขั้นตอน 6 - printlist(list,num)

readlist (list, num)
1. for j = 0 to num
2. read list[j].
printlist(list,num)
1. for j =0 to num
2. write list[j].
bub_sort(list,num)
1. for i = 0 to num
2. for j =0 to (num – i)
3. if( list[j] > list[j+1])
4. swapList( address of list[j], address of list[j+1])
swapList( address of list[j], address of list[j+1])
1. temp = value at list[j]
2. value at list[j] = value at list[j+1]
3. value at list[j+1] = temp

ตัวอย่างโปรแกรม

โปรแกรม C เรียงลำดับตัวเลขจากน้อยไปมากด้วย Bubble Sort:

#include <stdio.h> #define MAX 10 void swapList(int *m,int *n){    int temp;    temp = *m;    *m = *n;    *n = temp; } /* Function for 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]);    }    void readlist(int list[],int n){    int j;    printf("\nEnter the elements: \n");    for(j=0;j<n;j++)       scanf("%d",&list[j]);    }    /* Showing the contents of the list */    void printlist(int list[],int n){       int j;    for(j=0;j<n;j++)       printf("%d\t",list[j]); } void main(){    int list[MAX], num;    printf(" Enter the number of elements \n");    scanf("%d",&num);    readlist(list,num);    printf("\n\nElements in the list before sorting are:\n");    printlist(list,num);    bub_sort(list,num);    printf("\n\nElements in the list after sorting are:\n");    printlist(list,num); }

ผลลัพธ์

Enter the number of elements 10 Enter the elements: 11 23 45 1 3 6 35 69 10 22 Elements in the list before sorting are: 11 23 45 1 3 6 35 69 10 22 Elements in the list after sorting are: 1 3 6 10 11 22 23 35 45 69