首页 > 代码库 > C语言:冒泡排序

C语言:冒泡排序

技术分享

 

void sort(int arr[],int len) {    int tmp = -1;    for(int i = 1 ; i<len; i++) {        printf("第%d轮:\n", i);        // len-i+1:新轮比上轮可以少一次比较,-i        // i从1开始,第一轮不能少,故+1以修正        for(int j = 1; j < len-i+1; j++) {            if (arr[j-1] > arr[j]) {                tmp = arr[j-1];                arr[j-1] = arr[j];                arr[j] = tmp;            }            printArr(arr, len);        }    }}void printArr(int arr[],int len ) {    for(int i = 0 ; i<len; i++) {        printf("%d ", arr[i]);    }    printf("\n");}

 

 main中调用

    int a[] = {5,4,3,2,1};    sort(a, 5);

输出结果:

第1轮:4 5 3 2 14 3 5 2 14 3 2 5 14 3 2 1 5第2轮:3 4 2 1 53 2 4 1 53 2 1 4 5第3轮:2 3 1 4 52 1 3 4 5第4轮:1 2 3 4 5

 

C语言:冒泡排序