add insert sort

This commit is contained in:
2020-09-28 23:46:19 +08:00
parent eda1f371b5
commit 3a3240d4e5

View File

@@ -12,13 +12,19 @@ import java.util.Arrays;
*/
public class InsertSort {
/**
* ①. 从第一个元素开始,该元素可以认为已经被排序
* ②. 取出下一个元素,在已经排序的元素序列中从后向前扫描
* ③. 如果该元素(已排序)大于新元素,将该元素移到下一位置
* ④. 重复步骤 3直到找到已排序的元素小于或者等于新元素的位置
* ⑤. 将新元素插入到该位置后
* ⑥. 重复步骤②~⑤
*/
public static void sort(int[] arr) {
for (int i = 1; i < arr.length; i++) {
for (int j = i - 1; j >= 0; j--) {
int tmp = arr[j];
if (arr[j + 1] < arr[j]) {
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
swap(arr, j, j + 1);
} else {
break;
}
@@ -28,6 +34,16 @@ public class InsertSort {
System.out.println(Arrays.toString(arr));
}
public static void swap(int[] arr, int i, int j) {
// arr[i] = arr[i] + arr[j];
// arr[j] = arr[i] - arr[j];
// arr[i] = arr[i] - arr[j];
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
public static void main(String[] args) {
sort(new int[]{4, 9, 1, 6, 8, 2});
}