C语言 ——插入排序(升序、降序)

插入排序如图:

 觉得这个图比较易懂,贴了过来,B站“AF程序猿”视频中截到的


  • 升序
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
/*对用随机函数生产的10个整数
进行升序 插入排序
*/
void p(int a[],int n)
{
    int i,j,m;//循环
    int temp;

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

int main()
{
    int a[10],i;
    srand((unsigned int)time(0));
    printf("随机生产10个数为:");
    for(i=0;i<10;i++){
        a[i]=rand();
        printf("%d  ",a[i]);
    }

    p(a,i); //插入排序
    printf("\n排序的结果为:");
    for(i=0;i<10;i++){
        printf("%d  ",a[i]);
    }
    return 0;
}

运行结果:

  • 降序

把  p() 中 if(a[j]>a[j+1]),改成小于号。

void q(int a[],int n)//降序
{
    int i,j,m;//循环
    int temp;

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


版权声明:本文为Qiao_LT原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。