zoukankan      html  css  js  c++  java
  • //插入法排序

    //插入法排序
    /*
    first~有序序列的插入算法
    希尔排序】: 又称缩小增量排序,
    是对直接插入排序的优化 ,
    如下图所示 , 以3为间隔 ,
    每次进行排序 , 使数组接近于有序 ,
    这样就能减少元素后移的次数 ,
     这样在大量数据排序时 ,
     效率会大大提高 ;
     在下面的测试中会有明显的差别
     */
    //将任意读入的整数x 插入一个升序数列后,
    //数列仍案升序排列
    //要领:每读入一个数立即插入到最后存放的数组中
    //,每次插入都是该数列有序
    /*    #include<stdio.h>
        #define n 10
        int main(int argc,char const *argv[])
        {
            int a[n];
            int i,j,k,x;
            scanf("%d",&a[0]);
            for(j=1;j<n;j++)
            {
                scanf("%d",&x);
                if(x>a[j-1])
                {
                    a[j]=x;
                }else
                {
                    i=0;
                    while(x<a[i]&&i<=j-1)
                    {
                        i++;
        //以下for循环从最后一个数开始直到待插位置上依次后移一位
                        for(k=j-1;k>=i;k--)
                        {
                            a[k+1]=a[k];
                        }
                        a[i]=x;
                    }
                }
            }
            for(i=0;i<n;i++)
            {
                printf("%d ",a[i]);
            }
            return 0;
        }
    */
    #include<stdio.h>
    int main(int argc,char const *argv[])
    {
        int i,j,k,x,n;
        int t=0;
        scanf("%d",&n);  //先确定这组数有多少个数
        int a[n];
        scanf("%d",&a[0]);
        while(t<n)
        {
            t++;  
            scanf("%d",&x);
            if(x>a[t-1])
            {
                a[t]=x;
            }else
            {
                i=0;
                for(i=t;i>=0;i--)
                {
                    a[i]=a[i-1];
                    if(x>a[i-2])
                    {
                        a[i-1]=x;
                        break;
                    }
                }
            }
        }
        for(i=0;i<n;i++)
        {
            printf("%d ",a[i]);
        }
        return 0;
    }
     

  • 相关阅读:
    数组的应用:一。冒泡排序二。折半查找!二维数组的学习。
    break与continue,while 循环和一维数组的学习及作业
    for循环的应用:迭代法和穷举法
    循环
    称体重
    js js弹出框、对话框、提示框、弹窗总结
    windows 服务器开设端口
    SQL Server 数据库分离与附加(图文教程)
    ASP.NET MVC5 PagedList分页示例
    mvc 连接数据库但单复值得问题
  • 原文地址:https://www.cnblogs.com/lijianmin6/p/10398492.html
Copyright © 2011-2022 走看看