zoukankan      html  css  js  c++  java
  • 数据结构-插入排序

    我看了一些视频,有一些对插入排序有点误解,现在来解释一下;

    思想:

        前后两两进行对比,如果前面大于后边,则先把后边那个数空出来,然后把前边那个向后移动一个单位,再把空出来的那个数插入进去。

        图解:

        

        画的有点粗糙,请勿见怪,大概就是分为3步:

        第一步:选中数组数组中的arr[i] , 先空出来。

        第二步:数组中前j个数字与其作比较,大的往后摞一摞。

        第三步:把空出来的数字插入到下标为j的数组中。

    代码如下 

     1 package simpleSort;
     2 
     3 /**
     4  * 
     5  * @author caizhou
     6  *
     7  */
     8 public class charu {
     9         
    10     public static void sort(long[] arr){
    11         
    12         long tem = 0;
    13         
    14         for(int i = 1 ; i < arr.length; i++){
    15             tem = arr[i];
    16             int j = i ;
    17             //这里必须用while循环,不能用for循环,不然会造成索引溢出;
    18             while(j > 0 && arr[j-1] >= tem){
    19                 
    20                 arr[j] = arr[j-1];
    21                 j--;
    22             }
    23             arr[j] = tem;
    24         }
    25         
    26     }
    27 }

    到这里就讲完了,注意代码里面一定要用whlie循环,不然会造成下标索引溢出错误。

        

  • 相关阅读:
    maven将依赖依赖打包到jar中
    Python模块之信号(signal)
    mog使用指南
    Docker 入门
    注册码
    区块链Readme.md
    彻底卸载 postgreSQL .etc
    Django
    111
    pip 安装 lxml等 出错 解决
  • 原文地址:https://www.cnblogs.com/caizhou520/p/12582612.html
Copyright © 2011-2022 走看看