介绍和思路分析
思路图
代码
//插入排序
public class InsertSort {
public static void main(String[] args) {
int[]arr= {101,34,119,1};
insertSort(arr);
}
public static void insertSort(int[] arr) {
for(int i=1;i<arr.length;i++) {
//定义待插入的数
int insertVal = arr[i];
int insertIndex = i-1;//即arr[1]的前面这个数的下标
//给insertVal找到插入的位置
//说明
//1.insertIndex>0保证insertVal不越界
//2.insertVal<arr[insertIndex]待插入的数,还没有找到插入的位置
//3.就需要将arr[insertIndex]后移
while(insertIndex>=0&&insertVal<arr[insertIndex]) {
arr[insertIndex+1]=arr[insertIndex];
insertIndex--;
}
//当退出while循环时候,说明插入位置已经找到:insertIndex+1
arr[insertIndex+1]=insertVal;
}
System.out.println("数组排序好之后:");
System.out.println(Arrays.toString(arr));
}
}
说明
这是从小到大排序的,如果想要从大到小排序,只需要将while中的<
改成>
即可