插入排序法思想:
插入排序(Insertion Sorting)的基本思想是:把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。
插入排序思路图:
代码演示:
import java.util.Arrays;
public class InsertSort {
public static void main(String[] args) {
int arry[]= {2,5,3,1,32,18,26,9,67};
sort(arry);
}
public static void sort(int arry[]) {
int pre=0;
int val=0;
for (int i = 1; i < arry.length; i++) {
pre=i-1;// 即arry[1]的前面这个数的下标
val=arry[i];//当前位置
// 给pre 找到插入的位置
// 说明
// 1. pre >= 0 保证在给val 找插入位置,不越界
// 2. arry[pre]>val 待插入的数,还没有找到插入位置
// 3. 就需要将 arry[pre] 后移
while(pre>=0&&arry[pre]>val) {
arry[pre+1]=arry[pre];
pre--;
}
arry[pre+1]=val;
System.out.println("第"+i+"次排序后的结果为~~~");
System.out.println(Arrays.toString(arry));
}
System.out.println("---------最终结果为---------");
System.out.println(Arrays.toString(arry));
}
}