/**
* 插入排序
*/
@org.junit.Test
public void insertSort(){
int [] arr = {5,6,8,1,2,4,6,2};
for (int i = 1; i < arr.length; i++) {
// 待排序的的数取出存入临时变量t
int t = arr[i];
// 已排序数组末尾下标j
int j = i -1;
while (j >= 0 ){
// 如果arr[j] 比待插入数要大,arr[j]后移一位,j--
if (arr[j] > t){
arr[ j + 1] = arr [j];
}else {
break;
}
// 继续比较下一位
j--;
}
// 将待排序数 插入到已排序数组中正确的位置
arr[ j + 1] = t;
}
System.out.println(Arrays.toString(arr));
}
时间复杂度O(n^2)