zoukankan      html  css  js  c++  java
  • 插入排序

    插入排序

    • 概念

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

                 

     

    • 步骤

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

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

     

    • 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]
    
        }
    
    }
  • 相关阅读:
    ruby计算平方和开方
    Silverlight中DataGrid翻页或者滚动时CheckBox/RadioButton显示的问题
    bat文件设置ip地址
    gcc编译多线程
    TCP Nagle算法
    fork父子进程 信号处理
    Unix守护进程的创建示例
    inline内联函数
    volatile类型
    ioctl获取接口名称、IP地址、MAC地址、广播地址等
  • 原文地址:https://www.cnblogs.com/javaisbest/p/12966507.html
Copyright © 2011-2022 走看看