插入排序
基本思想
将n个待排元素看成一个有序集合和一个无需集合,起初,有序集合只有一个元素,排序
过程中每次从无序集合中取出一个元素,插入到有序集合的合适位置
public class InsertSort {
public static void main(String[] args) {
int[] arr = {5, 9, 7, 4, 95};
InsertSort(arr);
System.out.println(Arrays.toString(arr));
}
public static void InsertSort(int[] arr) {
for (int i = 1; i < arr.length; i++) {
int insertValue=arr[i];
int insertIndex = i-1;//
//insertIndex >= 0保證待插入的下標不越界
//insertValue < arr[insertIndex]還沒有找到合適的插入位置
//將arr[insertIndex];往後移
while (insertIndex >= 0 && insertValue < arr[insertIndex]){
arr[insertIndex + 1] = arr[insertIndex];
insertIndex--;
}
if (insertIndex + 1 != i) {//判斷是否賦值
arr[insertIndex + 1] = insertValue;
}
}
}
}