插入排序InsertionSort_听韩顺平课笔记

1.插入排序思想i = 1;while

把n个待排序的元素看作一个有序表和一个无序表,开始时有序表只包含一个元素arr[0],无序表中包含n-1个元素,每次从无序表中取出第一个元素,把他插入到有序表的适当位置。

2.插入排序时间复杂度O(n^2)

3.插入排序代码实现

package 算法.排序;

import java.util.Arrays;

public class InsertSortHsp {
    public static void main(String[] args) {
        int[] arr = new int[7];

        for (int i = 0; i < arr.length; i++) {
            arr[i] = (int)(Math.random()*100+1);
        }

        System.out.println(Arrays.toString(arr));

        insertionSort(arr);

        System.out.println(Arrays.toString(arr));
    }
    static void insertionSort(int[] arr){
        int insertVal = 0;
        int insertIndex = 0;
        for (int i = 1; i < arr.length; i++) {
            insertVal = arr[i];
            insertIndex = i - 1;

            while(insertIndex >= 0 && insertVal < arr[insertIndex]){
                arr[insertIndex + 1] = arr [insertIndex];
                insertIndex --;
            }

            arr[insertIndex + 1] = insertVal;
        }
    }
}

posted @ 2021-09-25 19:12  CH0701  阅读(28)  评论(0)    收藏  举报