• 插入排序


    插入排序

    • 概念

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

                 

     

    • 步骤

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

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

     

    • 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]
    
        }
    
    }
  • 相关阅读:
    Rotate Image
    Color Sort
    Chapter 3: Binary Tree
    Different Ways to Add Parentheses
    最短路径问题
    Longest Palindromic Substring
    Word Break
    PCA和SVD简述
    Set Matrix Zeros
    星级评价
  • 原文地址:https://www.cnblogs.com/javaisbest/p/12966507.html
Copyright © 2020-2023  润新知