插入排序 - 二分插入排序
二分插入是直接插入排序的一种优化,主要是查找方式不同。
稳定性:稳定的
时间复杂度:O(n^2)
public class BinaryInsertSort { public static void main(String[] args) { int temp; int left = 0, right, mid; int[] array = { -2, 61, 24, 43 ,11,342,121,10,123,9}; for (int i = 1; i < array.length; i++) { right = i - 1; temp = array[i]; while (left <= right) { mid = (left + right) >> 1; if (array[mid] < temp) { left = mid + 1; } else { right = mid - 1; } } // 元素后移 for (int j = i - 1; j >= left; j--) { array[j + 1] = array[j]; } if (left != i) { array[left] = temp; } left = 0; } for (int i : array) { System.out.print(" "+i); } } }
posted on 2017-08-03 18:00 一只小蜗牛12138 阅读(173) 评论(0) 编辑 收藏 举报