冒泡排序(算吗?)

技术 / 2023-11-27

古法手打排序,以作备份,未完全验证可用性,只对代码里已有数据负责。

#include <stdio.h>

int main(){
    int arr[5]={2,1,8,5,6};
    // 5 = $length

    // LETS RANK
    for(int i=0;i!=5;i++){
        int bench;
        bench = arr[i];
        int temp;
        int j = i+1;
        for(;bench>=arr[j];j++){
            if(j>=5){break;}
            // 5 = $length
            temp = arr[j];
            arr[j] = arr[i];
            arr[i] = temp;
            i++;
        }
    }

    // appli
    printf("%d %d %d %d %d",arr[0],arr[1],arr[2],arr[3],arr[4]);
}

Debug运行器和断点真好玩。

12/26/2023更新:

上面写的是错的,面向五个特定举例编程属于。

int sort(int arr[], int n){
    int i, j, temp;
    for(i=0; i<n; i++){
        for(j=0; j<n-i-1; j++){
            if(arr[j]>arr[j+1]){
                temp = arr[j+1];
                arr[j+1] = arr[j];
                arr[j] = temp;
            }
        }
    }
}

这个对了。
注意指针的应用!必要的时候把输入函数的数组改成输入数组指针。

吉ICP备2022001996号