插入排序

92 阅读1分钟
  • 基本思想
在一个已排序序列中,插入一个元素,要求在插入此元素后序列仍然有序。每次都将一个未排序元素按照值的大小
插入到已排序序列中适当的位置。

排序性能:平均时间复杂度:o(n^2),属于稳定排序。
  • 例子
数组:int[] arr = {24,12,56,34,75};

step1:取第一个元素放置在已排序序列中。从数组的其余元素中取出下一个元素,在已排序序列中从后往前进行比较。
直到找到已排序序列中小于等于该元素的元素为止,即我们要寻找的位置。依次重复step1,直到数组取完。

排序过程

  • 代码实现
public class InsertSort {
    public static void main(String[] args) {
        int[] arr = {24,12,56,34,75};
        insertSort(arr);
    }

    public static void insertSort(int[] arr){
        int temp = 0;
        for (int i = 0; i < arr.length; i++) {
            for (int j = i; j >0 && arr[j]<arr[j-1] ; j--) {
                temp = arr[j];
                arr[j] = arr[j-1];
                arr[j-1] = temp;
            }
        }
        for (int i : arr) {
            System.out.println(i);
        }
    }
}