插入排序


插入排序

概述

插入排序所需的时间与数组的初始顺序有关,对于已经有序或部分有序的数组进行排序时有优势

实现

    /**
     * 插入排序
     * 思路: 将一个元素插入到已经有序的序列中;
     * 步骤: 1.起始时假设数组中索引 [0] 的为有序序列,此时将[1]插入,结果索引[0],[1]为有序序列
     *     2.继续索引[0],[1]为有序序列,将[2]插入,结果[0],[1],[2]为有序序列
     *    3.依次类推,将[3]...插入,最后执行到数组末尾,则所有元素都插入到有序序列中去,排序完成
     */
    public void insertion(int[] arr){
        for(int i=1,len=arr.length;i<len;++i){
            for(int j=i;j>0 && arr[j]<arr[j-1];j--){
                //交换
                arr[j] = arr[j]^arr[j-1];
                arr[j-1] = arr[j]^arr[j-1];
                arr[j] = arr[j]^arr[j-1];
            }
        }
    }

文章作者: Bryson
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Bryson !
评论
 上一篇
希尔排序 希尔排序
希尔排序 希尔排序又称”缩小增量排序”,是插入排序的优化,插入排序在少量数据或部分有序的情况下,非常高效,因此希尔排序通过适当构造满足前述的条件,让整个排序过程处理的比插入排序更优 /** * 希尔排序 * 步
2018-10-14
下一篇 
  目录