首页 > 编程语言 > 详细

王道数据结构 (16) 折半查找排序

时间:2020-08-17 12:27:58      阅读:90      评论:0      收藏:0      [点我收藏+]

技术分享图片

 

 

代码:

#include <stdio.h>
#include <stdbool.h>
void BinaryInsertSort(int *a, int n)
{
  int i, j, k, low, high, m;
  for (i = 1; i < n; i++)
  {
    low = 0;
    high = i - 1;

    while (low <= high)
    {
      m = (low + high) / 2;
      if (a[m] > a[i])
        high = m - 1;
      else
        low = m + 1;
    }

    if (j != i - 1)
    {
      int temp = a[i];
      for (k = i - 1; k >= high + 1; k--)
        a[k + 1] = a[k];
      a[k + 1] = temp;
    }
  }
}
void printArray(int *a, int n)
{
  for (int i = 0; i < n; i++)
  {
    printf("%d ", a[i]);
  }
  printf("\n");
}
int main()
{
  int a[7] = {5, 2, 1, 8, 10, 23, 22};
  BinaryInsertSort(a, 7);
  printArray(a, 7);
  return 0;
}

运行:

技术分享图片

 

王道数据结构 (16) 折半查找排序

原文:https://www.cnblogs.com/guangzhou11/p/13516665.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!