黑马程序员技术交流社区

标题: 排序算法之折半插入排序 [打印本页]

作者: 叶子和大人    时间: 2015-10-25 12:37
标题: 排序算法之折半插入排序
本帖最后由 叶子和大人 于 2015-10-25 14:24 编辑

把折半查找和直接插入排序结合在一起,能减少比较的次数。
  1. private static int[] binaryInsertSort(int[] arr) {
  2.                 for (int i = 1; i < arr.length; i++) {
  3.                         int temp = arr[i];
  4.                         int low = 0;
  5.                         int high = i - 1;
  6.                         while (low <= high) {
  7.                                 int mid = (low + high) / 2;
  8.                                 if (temp < arr[mid]) {
  9.                                         high = mid - 1;
  10.                                 } else {
  11.                                         low = mid + 1;
  12.                                 }
  13.                         }
  14.                         for (int j = i; j >= low + 1; j--) {
  15.                                 arr[j] = arr[j - 1];
  16.                         }
  17.                         arr[low] = temp;
  18.                 }
  19.                 return arr;
  20.         }
复制代码



作者: wome789    时间: 2015-10-25 13:18
实际开发当中好像用不到吧,这只是一个基础,实际当中JAVA已经提供很多算法了
作者: 浅易    时间: 2015-10-25 13:59
怎么只有两行
作者: 叶子和大人    时间: 2015-10-25 14:26
wome789 发表于 2015-10-25 13:18
实际开发当中好像用不到吧,这只是一个基础,实际当中JAVA已经提供很多算法了 ...

是的,但是我觉得不能就光知道怎么用就好,像这些基础稍微懂一些,对你设计代码有起到很好的理解作用,会明白别人的代码为什么这么设计。
作者: 汪冰伦    时间: 2015-10-25 15:20
大神啊,膜拜一下
作者: wome789    时间: 2015-10-26 00:23
叶子和大人 发表于 2015-10-25 14:26
是的,但是我觉得不能就光知道怎么用就好,像这些基础稍微懂一些,对你设计代码有起到很好的理解作用,会 ...

恩,是的,突然觉得javase才是核心,其它的只是框架,你会用就好了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2