插入算法

作者: MIRROR1217 | 来源:发表于2019-09-29 17:16 被阅读0次

    插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。

    算法步骤

    1.将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。
    2.从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面。)

    动图演示

    insertionSort.gif

    复杂度

    时间复杂度 = O(n²)空间复杂度 = O(1)

    代码实现

    public static int[] insertsort(int[] arr) {
    
            int[] nums = Arrays.copyOf(arr,arr.length);
    
            for (int i = 1; i < nums.length; i++) {
    
                for (int j = i; j > 0 && nums[j] < nums[j - 1]; j--) {
    
                    RandomUtils.swap(nums,j,j - 1);
                }
    
            }
    
            System.out.println("Arrays.toString(arr) = " + Arrays.toString(nums));
            return nums;
     }
    

    相关文章

      网友评论

        本文标题:插入算法

        本文链接:https://www.haomeiwen.com/subject/umxqpctx.html