package 排序算法;
public class 直接插入排序 {
public static void main(String[] args) {
int[] arr = { 213213, 23, 12334, 5, 235 };
sort(arr);
}
private static void sort(int[] arr) {
/**
* 外层循环从数组中选出一个将要插入到有序数组的的数,
* 内层循环是遍历已经排好序的数组,将arr[i]插入到合适的位置中,其中arr[i]依次与排好序的前arr[i-1]个数字比较
* 比arr[i]大的依次后移。
*/
for (int i = 1; i < arr.length; i++) {// 依次挑选从第二个数字开始的无序数组,作为待插入的数字
int temp = arr[i];// temp为带插入的数
int j;
for (j = i - 1; j >= 0 && temp < arr[j]; j--) {// 带插入的数字依次与待插入数字之前的排好序的数字比较,比带插入数字大的依次后移
arr[j + 1] = arr[j];
}
arr[j + 1] = temp;// 直到遇到比带插入数字大的位置跳出循环,并在该位置插入带插入的数字
}
for (int k = 0; k < arr.length; k++) {
System.out.print(arr[k] + " ");
}
}
}
java实现直接插入排序
关注
打赏