2019-08-11插入排序

2019-08-11  本文已影响0人  捕风的逍遥侯

C语言实现的插入排序算法
两种实现方式
代码繁多(逻辑简单)

#include<stdio.h>
int main()
{
    int a[10]={2,4,7,3,1,9,8,6,0,5};
    for(int i=1;i<10;i++)
    {
        int k=i;
        for(int j=i-1;j>=0;j--)
        {
            if(a[i]<a[j])
            {
                k=j;
            }
        }
        //k为a[i]应该所在的位置
        //置换位置
        int temp=a[i];
        for (int m=i;m>k;m--)
        {
            a[m]=a[m-1];
        }
        a[k]=temp;
    }
    for(int h=0;h<10;h++)
    {
        printf("%d",a[h]);
    }
    return 0;
}

代码简洁(逻辑复杂)

#include<stdio.h>
int main(){
    int a[10] = {2,6,3,1,4,8,5,9,7,0};
    for(int i = 1 ; i< 10 ; i++){
        int tem = a[i];
        int j = i-1;
        while (j >= 0&& a[j] > tem)
        {
            a[j+1] = a[j];
            j--;
        }
        a[++j]=tem;
    }
    for (int i = 0; i < 10; i++)
    {
        printf("%d",a[i]);
    }
    return 0;
}

插入排序.png

上面两种代码。代码简洁一般逻辑复杂,代码繁多的一般逻辑简单。逻辑简单一般符合机器思维,逻辑复杂一般符合人脑符合。

上一篇 下一篇

猜你喜欢

热点阅读