zoukankan      html  css  js  c++  java
  • 常见算法(三)插入排序

    插入排序思路:

    1.默认第一个数已经排好序了,从第个数开始,向已经排好序的数组里面插入

    2.从已排好序的最后一位开始扫描,如果大于要插入的数,则将后面的数整体后移,继续向前扫描,直到不大于或者序号小于0,则插入此处

    3.继续下一个数插入,直到所有数都插入到数组中

    如何实现整体后移?

    实际上是从最后一位开始,若大于要插入的数,则令最后一位数向后移动一位,腾出一个空间

    代码实现:

    int[] arr = { 1, 9, 2, 4, 6, 7, 3 };
                //i=1,从第二个数开始
                for(int i = 1; i < arr.Length; i++)
                {
                    int temp = arr[i];
                    int here = 0;
                    //j=i-1表示从前面已排好序的最后一位开始
                    for(int j=i-1;j>=0 && arr[j] > temp; j--)
                    {
                        //此时j+1=i,也就是让最后一位移动到第i位
                        arr[j + 1] = arr[j];
                        //记录下要插入的位置编号
                        if (j >= 1)
                        {
                            here = j - 1;
                        }
                    }
                    //此时here等于小于要插入值的序号,那么here+1就是要插入的序号
                    arr[here+1] = temp;
                }
    记录编程的点滴,体会学习的乐趣
  • 相关阅读:
    MySQL导出数据库
    Struts2拦截器的应用
    Java JVM
    Http协议状态码
    6.过滤器(Filter)
    5.监听器(Listener)
    4.会话管理(Session)
    3.Servlet(二)
    2.Servlet(一)
    1.搭建JavaEE开发环境
  • 原文地址:https://www.cnblogs.com/AduBlog/p/13564965.html
Copyright © 2011-2022 走看看