Java---算法---插入排序
1 /** 2 * 插入排序(升序) 3 * 4 * @param array 5 */ 6 public static void insertSort(int[] array) { 7 8 int j = 0; 9 10 // 下标从1开始,因为要和前一个元素比较大小 11 for (int i = 1; i < array.length; i++) { 12 13 // 前一元素大于当前元素 14 if (array[i - 1] > array[i]) { 15 16 // 交换位置 17 array[i - 1] = array[i - 1] ^ array[i]; 18 array[i] = array[i - 1] ^ array[i]; 19 array[i - 1] = array[i - 1] ^ array[i]; 20 21 // 记录下交换后的位置(较小元素的位置) 22 j = i - 1; 23 24 // 判断新位置是否已到起始位置、并前一元素大于当前元素 25 while (j > 0 && array[j - 1] > array[j]) { 26 27 // 交换位置 28 array[j] = array[j] ^ array[j - 1]; 29 array[j - 1] = array[j] ^ array[j - 1]; 30 array[j] = array[j] ^ array[j - 1]; 31 32 // 更新位置 33 j = j - 1; 34 } 35 } 36 } 37 System.out.println(Arrays.toString(array)); 38 }