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

    1.插入排序简介
    插入排序(Insertion sorting) 的基本思想是:把n个待排序的元素看成为一个有序表和一 个无序表 ,开始时有序表中只包含一个元素 ,无宇表中包含有n -1个元素 , 排序过程中每次从 无序表中取出第一个元素 ,把它的排序码依次与有序表元素的 排 序 码进行比较 , 将它插入到有序表中的适当位置 ,使之成为新的有序表 。

    2.插入排序图解

    在这里插入图片描述

    3.代码

    public class InsertSort {
        public static void main(String[] args) {
            int[] arr = {101,34,119,1};
            InsertSort.insertSort(arr);
        }
    
        /**
         * 插入排序
         * @param arr
         */
        public static void insertSort(int[] arr){
            //{101,34,119,1}
            //int i = 1:第1个数为有序表
            for (int i = 1;i<arr.length;i++) {
                //待插入的数
                int insertVal = arr[i];//insertVal在第一轮排序时是34
                //insertVal:待插入的位置
                int insertIndex = i-1;
                //insertVal<arr[insertIndex]:表示insertVal没有找到位置
                while (insertIndex>=0&&insertVal<arr[insertIndex]){
                    arr[insertIndex+1]=arr[insertIndex];//arr[insertIndex]后移,给insertVal让出一个位置
                    //待插入位置前移
                    insertIndex--;
                }
                //找到位置时退出循环
                //insertIndex+1:while中insertIndex--后再判断,所以加一
                arr[insertIndex+1]=insertVal;
                System.out.println("第"+i+"趟排序:"+Arrays.toString(arr));
    
            }
        }
    }
  • 相关阅读:
    struts1:(Struts)ActionForm类及表单数据验证
    前端基础
    JavaScript 开发进阶:理解 JavaScript 作用域和作用域链
    vue+webpack一些知识
    gulp简单使用小记
    如何在Github Pages搭建自己写的页面?
    十大名茶
    中国六大茶类
    从零开始用gulp
    15 个有趣的 JavaScript 与 CSS 库
  • 原文地址:https://www.cnblogs.com/isalo/p/13095239.html
Copyright © 2011-2022 走看看