• 直接插入排序


    /******************************
    直接插入排序:S=O(1);T=O(n*n);
    比较次数取决于待排序的初始状态。
    稳定的排序
    *******************************/
    #include <stdio.h>
    
    int main()
    {
        int a[11],i; //注意是a[11],而不是a[10],因为InsertSort函数中A[0]是不存放元素的
        printf("请输入10个数据:
    ");
        for(i=1;i<11;i++)
            scanf("%d",&a[i]);
        InsertSort(a,10);
        printf("插入排序后的序列为:
    ");
        for(i=1;i<11;i++)
            printf("%d ",a[i]);
        return 0;
    }
    int InsertSort(int A[],int n)
    {
        int i,j;
        for(i=2;i<=n;i++) //A[0]是哨兵,不存放元素,A[1]只有一个元素,无需比较,所以i从2开始。
        { //共有n个元素,进行n-1趟循环,依次将A[2]-A[n]插入到前面已排序序列
            if(A[i]<A[i-1]) //若A[i]的关键字码小于其前驱,需将[i]插入有序表
            {
                A[0] = A[i]; //将A[i]的关键字复制给A[0]
                for(j=i-1;A[j]>A[0];j--)//查找带插入位置
                    A[j+1] = A[j]; //向后挪位
                A[j+1] = A[0];//插入到带插入位置
            }
        }
    }
    View Code
  • 相关阅读:
    java依赖注入
    Mac OS 中的 Python(和 NumPy)开发环境设置
    英语巴菲
    经济学原理
    You are beautiful
    大数据之tachyon(未完版)
    机器学习温和指南
    机器学习之回归
    Mac 命令
    批处理--批量打开程序&批量关闭程序
  • 原文地址:https://www.cnblogs.com/spore/p/11553138.html
Copyright © 2020-2023  润新知