import java.util.Arrays;
public class MyTest {
public static void main(String[] args) {
//直接插入排序:每次把后面的一个元素,插入到前面的一个有序序列中,使之保持仍然有序;
int[] arr = {50,20,10,20,1,4,3};
//举例:10插入到[20,50]里面,先和50比较完为-->[20,10,50]-->[10,20,50] 这为一轮
for (int i = 1; i < arr.length; i++) {//外层循环定义轮次,每一轮指向前插入后,数字有序为止;
//里层循环,比较交换位置
int j = i;
while (j > 0 && arr[j] < arr[j - 1]) {
int t = arr[j];
arr[j] = arr[j - 1];
arr[j - 1] = t;
j--;//比较插入完后,继续与前面插入的元素继续比较,所以需要向前递减,直至插在最小数的前面为止;
}
}
System.out.println(Arrays.toString(arr));
}
}
java之直接插入排序
最新推荐文章于 2021-11-18 17:46:16 发布