插入排序

插入排序

基本思想

将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;
            }


        }
    }
}
posted @ 2020-09-07 23:04  清风5438  阅读(87)  评论(0编辑  收藏  举报