插入排序

插入排序

  • 概念

   插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。它的原理有点像平时打扑克牌时,把刚拿到的扑克牌插入到手牌里。

             

 

  • 步骤

   将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。

    从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面。)

 

  • Java代码实现
public class InsertSort {
    public void insertSort(Integer arr[]){
        //先判断数组元素是否只有一个以下,若只有一个就不用排序
        if(arr.length<=1)return;
        for(int i=1;i<arr.length;i++){
            //由于插入排序是在已排序序列中从后向前扫描,找到相应位置并插入,所以用--
            for(int j=i;j>0;j--){
                if(arr[j]<arr[j-1]){
                    int temp = arr[j-1];
                    arr[j-1] = arr[j];
                    arr[j] = temp;
                }
            }
        }
    }

    public static void main(String[] args) {
        Integer arr[] = {7,6,5,2,1,4};
        System.out.println("排序前的数组:"+Arrays.toString(arr));
        InsertSort insertSort = new InsertSort();
        insertSort.insertSort(arr);
        System.out.println("排序后的数组:"+Arrays.toString(arr));
        //最终输出结果:
        //排序前的数组:[7, 6, 5, 2, 1, 4]
        //排序后的数组:[1, 2, 4, 5, 6, 7]

    }

}

 

posted @ 2020-05-26 16:46  发育中的程序猿  阅读(94)  评论(0编辑  收藏  举报