A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 青葱岁月@1 中级黑马   /  2015-7-29 00:32  /  711 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  • <p><p>/* 二分插入法 */
  • void HalfInsertSort(int a[], int len)
  • {
  •      int i, j,temp;
  •      int low, high, mid;
  •      for (i=1; i<len; i++)
  •      {
  •           temp = a;/* 保存但前元素 */
  •           low = 0;
  •           high = i-1;
  •           while (low <= high) /* 在a[low...high]中折半查找有序插入的位置 */
  •           {
  •                mid = (low + high) / 2; /* 找到中间元素 */
  •                if (a[mid] > temp)  /* 如果中间元素比但前元素大,当前元素要插入到中间元素的左侧 */
  •                {
  •                 high = mid-1;
  •                }
  •                else    /* 如果中间元素比当前元素小,但前元素要插入到中间元素的右侧 */
  •                {
  •                 low = mid+1;
  •                }
  •           }       /* 找到当前元素的位置,在low和high之间 */
  •           for (j=i-1; j>high; j--)/* 元素后移 */
  •           {
  •            a[j+1] = a[j];
  •           }
  •           a[high+1] = temp; /* 插入 */
  •      }
  • }</p><p> </p>

3 个回复

倒序浏览
恩 恩 谢谢谢了  这个方法好详细啊
回复 使用道具 举报
看看,学习学习
回复 使用道具 举报
复习一下!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马