• 【算法设计与分析基础】12、插入排序


    package cn.xf.algorithm.ch04;
    
    import org.junit.Test;
    
    /**
     * 
     * 
     * .
     * @author xiaof
     * @version Revision 1.0.0
     * @see:
     * @创建日期:2017年5月23日
     * @功能说明:插入排序
     *
     */
    public class InsertSort {
        
        /**
         * 插入排序,核心思想是,遍历这个数据,然后把所有的所有的数据从前往后往这个空位拉开一个身位,
         * 直到找到比这个数小的位置后面,往这个空位插入当前遍历到的数据
         * @param Data
         * @return
         */
        public int[] insertionSort(int Data[]) {
            //遍历原始数据
            for(int i = 0; i < Data.length; ++i) {
                //保存当前遍历的数据
                int curData = Data[i];
                //接下来从这个位置开始往前遍历,直到最后
                int j = i - 1;
                while(j >= 0 && Data[j] > curData) {
                    //寻找比这个当前遍历数据更小的数据,吧当前数据插入到这个数据之后
                    Data[j + 1] = Data[j];  //后移一位数据
                    j = j - 1;
                }
                //插入遍历到的数据之后
                Data[j + 1] = curData;
            }
            
            return Data;
        }
        
        @Test
        public void test1() {
            //测试插入排序
            int Data[] = {89, 45, 68, 90, 29, 34, 17};
            InsertSort is = new InsertSort();
            int result[] = is.insertionSort(Data);
            
            for(int i : result) {
                System.out.print(i + " ");
            }
        }
    }
    

      

    插入排序:

  • 相关阅读:
    python基础(十七、变量进阶
    python基础(十六、变量进阶
    python基础(十五、变量进阶
    python基础(十四、变量进阶
    python基础(十三、综合应用
    MySQL-索引失效原理
    MySQL-忘记密码
    OSI七层模型
    Python-socket通信
    Python-编程小技巧
  • 原文地址:https://www.cnblogs.com/cutter-point/p/6894971.html
Copyright © 2020-2023  润新知