当前位置: 首页 > news >正文

温州建设集团网站首页网站首页快照更新快

温州建设集团网站首页,网站首页快照更新快,电子商务网站硬件建设的核心是,网页制作公司要求插入排序的基本思想是#xff1a; 每次将一个待排序的记录按其关键字的大小插入到前面已排好序的文件中的适当位置#xff0c; 直到全部记录插入完为止。 一 简介 插入排序可分为2类 本文介绍 直接插入排序 它的基本操作是#xff1a; 假设待排充序的记录存储在数组 R[1……插入排序的基本思想是 每次将一个待排序的记录按其关键字的大小插入到前面已排好序的文件中的适当位置 直到全部记录插入完为止。 一 简介 插入排序可分为2类 本文介绍 直接插入排序 它的基本操作是 假设待排充序的记录存储在数组 R[1…n] 中 在排序过程的某一时刻 R被划分成两个子区间 R[1…i-1] 和 R[i…n], 其中前一个为已排序的有序区 后一个为无序区 开始时有序区中只含有一个元素 R[1], 无序区为 R[2…n] . 排序过程中只需要每次从无序区中取出第一个元素 把它插入到有序区的适当位置 使之成为新的有序区 依次这样经过 n − 1 n-1 n−1 次插入后 无序区为空 有序区中包含了全部 n n n 个元素 至此排序完毕。 以java为例 看一个demo. import java.util.Arrays;/*** 2024.2.19* 插入排序*/ public class InsertSort {public static void main(String[] args) {Integer[] array_ new Integer[]{30,45,10,30,50};System.out.println(初始顺序\n Arrays.toString(array_));insertSort(array_);System.out.println(最后顺序\nArrays.toString(array_));}static void insertSort(Integer[] array){for(int i1; iarray.length; i){ //第0位 独自作为有序数列 从1开始 说明第二部分从第二个元素操作if(array[i]array[i-1]){ // 0~ i-1位为有序 如果当前值 小于 前面一个值int temp array[i]; //将当前值 赋值给 临时变量int j i-1;//从第i-1位向前遍历并移位 直到找到小于第 i 位值停止for(; j0 temp array[j]; j--) { //j-- 说明是从后面往回走 然后找插入位置array[j1] array[j]; // 将记录后移一位}array[j1] temp; // 将基准插入到正确位置}}} }程序运行结果: 直接插入排序 二 原理 直接插入排序算法 有两重循环 外循环表示要进行 n − 1 n-1 n−1趟排序 内循环表明完成一趟排序所进行的记录间的比较和记录的后移。 在每一趟排序中 最多可能进行 i 次比较 移动 i 1 i 1 i1 个记录(后循环前后作两次移动) 所以在最坏的情况下(反序) 插入排序的关键字之间比较次数和记录移动次数达最大值。 最大比较次数: C m a x ∑ i 2 n ( n 2 ) ( n − 1 ) 2 C_{max} \sum_{ i2}^{n }\frac{(n2)(n-1)}{2} Cmax​∑i2n​2(n2)(n−1)​ 最大移动次数: M m a x ∑ i 2 n ( i − 1 ) ( n 4 ) ( n − 1 ) 2 M_{max} \sum_{ i2}^{n}{(i-1)}\frac{(n4)(n-1)}{2} Mmax​∑i2n​(i−1)2(n4)(n−1)​ 三 时间复杂度和空间复杂度 由上述分析可知 当原始数组的初始状态不同时 直接插入排序算法的时间复杂度有很大差别 最好的情况是数组初始为正序即升序 此时的时间复杂度为 O ( n ) O(n) O(n). 最坏的情况是数组初始状态为反序 此时的时间复杂度为 O ( n 2 ) O(n^{2}) O(n2) . 容易证明该算法的平均时间复杂度也为 O ( n 2 ) O(n^{2}) O(n2). 这时因为对当前无序区 R [ 2.. i − 1 ] ( 2 ⩽ i ⩽ n ) R[2..i-1] (2 \leqslant i\leqslant n) R[2..i−1](2⩽i⩽n), 平均比较次数为 ( i − 1 ) / 2 (i-1) / 2 (i−1)/2,所以总的比较和移动次数约为 n ( n − 1 ) / 4 ≈ n 2 4 n(n-1) /4 \approx \frac{n^2}{4} n(n−1)/4≈4n2​. 该算法的空间复杂度 S ( n ) 为 O ( 1 ) S(n) 为 O(1) S(n)为O(1) 注意概念: 若排序算法所需要的额外空间相对于输入数据量来说是一个常数 则称该排序为就地排序。 直接插入排序是一个就地排序。
http://www.zqtcl.cn/news/10710/

相关文章:

  • 潍柴新建站登录网址呼图壁网站建设
  • 深圳网站建设服务哪个便宜啊最有效的推广学校的方式
  • 网站建设岗位说明网页设计师的主要职责
  • 网站增加二级域名wordpress移动端模板
  • wordpress大型站点建设高端网站公司
  • 网络营销网站建设与策划分析企业网站建设目的是什么
  • 青岛网站建设公司 中小企业补贴php商城
  • 有做全棉坯布的网站吗什么是网站建设
  • 网站开发定制宣传图片汕头网站推广找哪里
  • 东莞有口碑的教育网站建设wordpress 企业 模板 下载
  • 配送网站开发网站佣金怎么做会计科目
  • 网站建设期末作业要求daozicms企业建站系统
  • 建设学院网站的意义创办一个网站的费用
  • 番禺网站建设多少钱2021营业执照年检网上申报
  • 企业网站如何做推广东莞市做阀门的网站
  • 网站公司做文员内蒙古工程建设协会网站
  • 自己做付费网站东莞广告设计公司排名
  • 保定企业建站程序win没有wordpress
  • 石家庄自助建站模板响应式网站简单模板
  • 常德网站seo阿里巴巴网站头像你会放什么做头像
  • 莱芜公交网站淮安网站开发
  • 动易与php环境架设网站为什么做网站的会弄友情链接
  • 给小公司做网站赚钱吗网站开发要用cms
  • 效果营销型网站建设美术教师网站建设心得体会
  • 徐州手机模板建站外贸交流软件有哪些
  • 网门网站下载地址进入上海公众号
  • 浙江华临建设集团有限公司网站wordpress酒店
  • 做旅游计划上哪个网站网站的上一页怎么做的
  • 个体户做网站有用吗拉一条宽带要多少钱
  • 现在没人做网站了wordpress常用的插件推荐