编辑代码

#include <stdio.h>

void bubble_sort(int a[],int N);

void bubble_sort(int a[],int N){
    int p,i,temp;
    //用于判断序列本身是否有序
    int flag = 0;
    for(p = N - 1;p > 0 || p == 0;p--){
       //一趟冒泡
       for(i = 0;i < p;i++){
        if(a[i] > a[i+1]){
            temp = a[i];
            a[i] = a[i+1];
            a[i+1] = temp;
            //发生了交换,更改flag的值
            flag = 1;
        }
    }
    //全程无交换
    if(!flag){
        break;
    }
 }
    for(int i = 0;i < 5;i++){
        printf("%d ",a[i]);
    }
}

int main () {
    int a[5] = {34,51,89,16,20};
    printf("排序前的元素为:\n");
    for(int i = 0;i < 5;i++){
        printf("%d ",a[i]);
    }
    printf("\n");
    printf("排序后的元素为:\n");
    bubble_sort(a,5);
}