• 排序算法之插入排序


      初识算法,甚是脑大!初识排序,甚是苦恼!不过真要铁 了心,好好的看下去,想想这些排序并没有那么困难!

      通过网上的学习和自己的理解,想对插入排序算法做一些总结,以加深对算法的理解。

      直接插入排序(Insertion Sort)的思想是:

            每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止。

      基本思想:假设有数组a[] 有n个元素,随机抽取第一个 a[1] 作为有序区的元素,则把 [2 --- n-1] 的元素,依次插入到 有序区,

           最后生成含n个记录的有序区。

      代码解析:

        

    /* 时间复杂度最慢:O(n*n);如果都是正序的话,时间复杂度:O(n);
         * 思想:n个元素,抽一个 作为有序区,剩下的元素要插入n-1 次,没一次插入 需要 从右向左依次比较。
        */
        public static void insetSort(int a[]){
            int j ;
            int temp;
            for(int i=1;i<a.length;i++){  //抽出一个元素后,余下需要 插入比较 n-1次,
                 j = i; 
                 temp = a[i];               //创建一个 临时变量,用于存放将要插入的 元素。 
                 while(j > 0 && temp <a[j-1]){   // 当j = 0 时,一次 插入结束
                                             
                    a[j] = a[j-1];
                    j--;
                    
                 }
                 a[j] = temp;             //将 temp放到 排序好的左边位置上,
            }
        }
  • 相关阅读:
    day1-字符串拼接、表达式、break和continue
    ssh免密登录
    1-5 文档的基本 CRUD 与批量操作
    1-4 安装logstash
    1-3 安装cerebro
    1-2 kibana 7.5.1 安装配置
    1-1 elasticsearch7.5 集群搭建 es 7
    生产环境k8s集群搭建
    Gearman任务分布系统部署windows平台_使用Cygwin
    [转载]单元测试之道(使用NUnit)
  • 原文地址:https://www.cnblogs.com/gzd-123/p/5301223.html
Copyright © 2020-2023  润新知