编辑代码

#include <stdio.h>

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

//模拟打牌的思路
void insert_sort(int a[],int N){
    int p,i,temp;
    for(int p = 1;p < N;p++){
        //摸下一张牌
        temp = a[p];
        //默认手上有一张牌,新摸的牌比手上的要小,空出位置
        for(i = p;i > 0 && a[i-1] > temp;i--){
            //移出空位
            a[i] = a[i-1];
        }
        //新牌落位
        a[i] = temp;   
    }
    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");
    insert_sort(a,5);
}