zoukankan      html  css  js  c++  java
  • 排序之二分法折半插入排序

     1 //二分法折半插入排序
     2 /*折半插入算法思想
     3 1、初始化:设定有序区为第一个元素,设定无序区为后面所有元素
     4 2、依次取无序区的每个元素
     5 3、通过二分法查找有序区,返回比这个数小的最大数
     6 4、保留此位置数据
     7 5、从此位置的元素到有序区的最后一个元素,依次后移
     8 6、用保留的数据填充此位置
     9 */
    10 void sortByInsertHalf(int array[],int arraySize)
    11 {
    12     int iMax,iMid,iMin;
    13     for(int i=1;i<arraySize;i++)
    14     {
    15         int temp = array[i];
    16         iMax = i-1;
    17         iMin = 0;
    18         while(iMin<=iMax)
    19         {
    20             iMid = (iMax+iMin)/2;
    21             if(array[iMid]>=temp)
    22             {
    23                 iMax = iMid-1;
    24             }
    25             else
    26             {
    27                 iMin = iMid+1;
    28             }
    29         }
    30         for(int j=i-1;j>=iMax+1;j--)
    31         {
    32             array[j+1] = array[j];
    33         }
    34         array[iMax+1] = temp;
    35     }
    36 }
    37 
    38 void print(int a[],int length)
    39 {
    40     for(int i=0;i<length;i++)
    41     {
    42         printf("%d ",a[i]);
    43     }
    44     printf("\n");
    45 }
    46 
    47 int main()
    48 {
    49     int a[10] = {7,2,8,3,9,10,15,11,20,17};
    50     sortByInsertHalf(a,sizeof(a)/sizeof(int));
    51     print(a,sizeof(a)/sizeof(int));
    52     return 0;
    53 }
  • 相关阅读:
    beta冲刺1
    凡事预则立-于Beta冲刺前
    SDN第二次作业
    事后诸葛亮(团队)
    SDN第一次上机作业
    冲刺总结随笔
    Alpha第三天
    Alpha第二天
    Alpha冲刺博客集
    项目需求分析(团队)
  • 原文地址:https://www.cnblogs.com/jiese/p/2566499.html
Copyright © 2011-2022 走看看