java 插入排序
**插入排序原理**:
1.从第一个元素开始,该元素可以认为已经排好序。
2.取出下一个新元素,然后把这个新元素在已经排好序的元素序列中从后往前扫描进行比较。
3.如果该元素(已排序) 大于新元素,则将这个已排序的元素移到下一个索引位置。
4.重复步骤3,直到找到已排序的元素小于或者等于新元素的位置。
5.将新元素插入到该已排序的元素的索引位置后面。
重复步骤2~5
***不说废话直接上代码!!!***
public class Train {
public static void main(String[] args) {
int[] old = {6, 7, 0, 9, 4};
System.out.println("老数组为:");
for (int i = 0; i < old.length - 1; i++) {
System.out.print(old[i] + ",");
}
System.out.print(old[old.length - 1]);
System.out.println();
insertSort(old);
System.out.println("插入排序后的数组为:");
for (int i = 0; i < old.length - 1; i++) {
System.out.print(old[i] + ",");
}
System.out.print(old[old.length - 1]);
}
//插入排序
public static void insertSort(int[] arr) {
int j; // 已经排序过的元素下标
int t;// 待排序的元素
for (int i = 1; i < arr.length; i++) {
if (arr[i] < arr[i - 1]) {
//把小的赋值给待排序的元素
t = arr[i];
//不断与前面的元素一个一个比较
for (j = i - 1; j >= 0 && arr[j] > t; j--) {
arr[j+1] = arr[j];
}
arr[j+1] = t; //将待排序元素插入到正确的位置
}
}
}
}
运行结果为:
看到这里的小伙伴们点个赞叭~ Thank you!