插入排序
什么是插入排序?
通俗理解就是,把n个待排序的元素看成一个有序表和无序表,有序表最开始为1,无序表为n-1,
每进行一轮排序,从无序表中取出第一个元素,将其与有序表元素进行比较,将其放入一个合适的位置。
最后形成的一个完整有序表。
时间复杂度:O(n^2)
稳定度:稳定
代码实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| public static void insertSort2(int[] arr) { int value; int index; for (int i = 1; i < arr.length; i++) { System.out.println("第" + (i - 1) + "轮" + Arrays.toString(arr)); value = arr[i]; index = i; while (index >= 1 && value < arr[index - 1]) { arr[index] = arr[index - 1]; index--; } if (index != i) { arr[index] = value; } } }
@Test public void insertSort2Test() { int[] arr = {101, 34, 119, 1, -1, 98,3,5,323,125,743}; insertSort2(arr); }
|
测试结果
