import java.util.Arrays
/**
* 直接插入排序
* 个人理解:1.可以理解为现实生活的排队,按高低个排,新来的跟已经排好队的比较,找到插入的位置
* 2.时间复杂度,因为需要两层循环,最好情况是已经排好队,则O(n),最坏情况完全无序,则O(n²)
* 3.空间复杂度,因为没有用的额外空间,所以为0(1)
* 4.稳定性,因为没有发生跳跃式变换(跳跃式指非相邻元素交换位置),所以稳定
*/
public class SortTest {
public static void main(String[] args) {
int[] arr = {70, 12, 82, 43, 99, 23, 38, 53, 22}
insertSort(arr)
Arrays.stream(arr).forEach(System.out::println)
}
public static void insertSort(int[] arr) {
for (int i=1
int temp = arr[i]
int j = i-1
for (
if (temp < arr[j]) {
arr[j+1] = arr[j]
} else {
break
}
}
arr[j+1] = temp
}
}
}