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;
    }
     

  • 相关阅读:
    DELPHI版传奇引擎学习菜鸟篇(applem2)04
    DELPHI版传奇引擎学习菜鸟篇(applem2)03
    学习win32API消息处理
    DELPHI版传奇引擎学习菜鸟篇(applem2)02
    DELPHI版传奇引擎学习菜鸟篇(applem2)01
    读写INI的通用函数
    黑马程序员选择语句 SwitchCase 和break 、return 关键字。
    黑马程序员Readonly和Const的区别
    黑马程序员计算每个字符在字符串中出现的次数
    黑马程序员ADO.NET中的五个主要对象
  • 原文地址:https://www.cnblogs.com/lijianmin6/p/10398492.html
Copyright © 2011-2022 走看看