import java.util.Arrays;
public class InsertSort {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 测试
int[] arr = {8,1,9,5,10,2};
insertSort(arr);
System.out.println(Arrays.toString(arr));
}
public static void insertSort(int[] arr)
{
for(int i=1;i<arr.length;i++)
{
/*
* 插入排序理解:每次将前 i 个看成一个数组,每次for循环增加一个元素,每一次while循环完前 i 个组成的数组变为有序
* 第一次前两个为一个数组,经行比较,后依次类推...
*/
int insertVal = arr[i];
int index = i-1;
//按递增排序
// insertVal<arr[index] 因为前面已经是有序的了,所以只需要找到一个即退出循环或者没找到就在第一个
while(index>=0&&insertVal<arr[index])
{
// 依次将 insertVal 前且不满足条件的元素往后移动
arr[index+1] = arr[index];
index--;
}
// 将insertVal 放入待插入位置
arr[index+1] = insertVal;
}
}
}
插入排序(JAVA)
最新推荐文章于 2023-05-15 11:09:25 发布