首页 > 代码库 > BinaryInsertSort
BinaryInsertSort
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 else13 low = mid + 1;14 }15 // array[i, low]向后移动一位,插入tmp16 for (int j = i; j > low; j--)17 array[j] = array[j - 1];18 array[low] = (E) tmp;19 }20 return array;21 }
BinaryInsertSort
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。