码迷,mamicode.com
首页 > 其他好文 > 详细

BinaryInsertSort

时间:2016-09-10 01:29:56      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:

code:

 1 @SuppressWarnings({ "unchecked", "rawtypes" })
 2 public static <E> E[] binaryInsertSort(E[] array) {
 3     for (int i = 1; i < array.length; i++) {
 4         Comparable tmp = (Comparable) array[i];
 5         /* 二分法找出应该插入tmp的位置 */
 6         int low = 0;
 7         int high = i - 1;
 8         while (low <= high) {
 9             int mid = (low + high) >>> 1;
10             if (tmp.compareTo(array[mid]) < 0)
11                 high = mid - 1;
12             else
13                 low = mid + 1;
14         }
15         // array[i, low]向后移动一位,插入tmp
16         for (int j = i; j > low; j--)
17             array[j] = array[j - 1];
18         array[low] = (E) tmp;
19     }
20     return array;
21 }

 

BinaryInsertSort

标签:

原文地址:http://www.cnblogs.com/upside-down/p/5858491.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!