在 C 編程語言中,冒泡排序是最簡單的排序技術,也稱為交換排序。
冒泡排序過程
將第一個元素與列表中的其余元素進行比較,如果它們不按順序進行交換(交換)。
對列表中的其他元素重復相同的操作列表,直到所有元素都已排序。
算法
下面給出的是一種算法,通過使用冒泡排序技術 –
第 1 步 – 開始
第 2 步 – 獲取列表(數組),num
第 3 步? readlist(list,num)
第 4 步? printlist(list,num)
第5步 – bub_sort(list,num)
第6步 – printlist(list,num)
readlist (list, num)
登錄后復制
第7步 − 停止
1. for j = 0 to num 2. read list[j].
登錄后復制
打印列表(列表,數字)
1. for j =0 to num 2. write list[j].
登錄后復制
bub_sort(列表,數字)
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( list[j]的地址, 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程序
演示
#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("Enter the elements:
");
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
");
scanf("%d",&num);
readlist(list,num);
printf("
Elements in the list before sorting are:
");
printlist(list,num);
bub_sort(list,num);
printf("
Elements in the list after sorting are:
");
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
登錄后復制
以上就是使用冒泡排序算法對給定的數字列表進行升序排序的C程序的詳細內容,更多請關注www.xfxf.net其它相關文章!






