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

在国税网站更换购票员怎么做上海外贸soho网站建设

在国税网站更换购票员怎么做,上海外贸soho网站建设,营销型网站建设实训报告个人总结,企业网站开发与设计论文欢迎来到繁星的CSDN#xff0c;本期的内容主要包括冒泡排序(BubbleSort#xff09;#xff0c;直接插入排序(InsertSort)#xff0c;以及插入排序进阶版希尔排序#xff08;ShellSort#xff09;。 废话不多说#xff0c;直接上正题#xff01; 一、冒泡排序 冒泡排序… 欢迎来到繁星的CSDN本期的内容主要包括冒泡排序(BubbleSort直接插入排序(InsertSort)以及插入排序进阶版希尔排序ShellSort。 废话不多说直接上正题 一、冒泡排序 冒泡排序是我们的老朋友了我们最初模拟实现qsort的时候就是用它来模拟的尽管qsort的底层原理实际是quicksort即快排。 上代码 void BubbleSort(int* a, int n) {for (int j 0; j n; j){// 单趟int flag 0;for (int i 1; i n - j; i){if (a[i - 1] a[i]){Swap(a[i - 1], a[i]);flag 1;}}if (flag 0){break;}} } 代码相当简单其思想就是通过两两之间的比较每一趟都将最大的数据放在数组的最后。 缺点是冒泡排序的速度相当慢原因不仅仅在于比较的次数恒定n*(n1)/2次)更在于如果数据量庞大各个数据移动的速度也相当慢。 实际意义聊胜于无但却很好地帮我们入门各大排序算法这是它仍然活跃的意义。 二、直接插入排序 我们一般会叫它插入排序在此加入“直接”二字是为了区分它和希尔排序。 插入排序的思路也是较为简单的。 面对一个有n个元素的数组如果前n-1个元素都有序那么第n个元素通过和前面所有元素比较就能得到该元素在数组中的位置。有一点数学归纳法的思想在里面。 上代码 void InsertSort(int* a, int n) {// [0, n-1]for (int i 0; i n - 1; i){// [0, n-2]是最后一组// [0,end]有序 end1位置的值插入[0,end]保持有序int end i;int tmp a[end 1];while (end 0){if (tmp a[end]){a[end 1] a[end];--end;}else{break;}}a[end 1] tmp;} } 由于一个元素一定有序所以第一个元素不用排序。而从第二个元素开始通过比较不断插入到前面的数组中使前n项都有序如此往复便可使得整个数组有序。         相比于冒泡排序插入排序少了大量重复的交换数值的工作而是一步到位得到数据的最终位置尽管时常需要将所有数据后移但代码中只是赋值而非交换效率比冒泡高的多。 两者运行时间差别 此处数据为10000个 尽管如此我们在实际工作中也很少使用直接插入排序即使时间比冒泡排序少的多其时间复杂度仍为O(n^2)。但不得不指出它仍有应用后续在快排的时候将会提到。 三、希尔排序 希尔排序是插入排序的优化版本优化到可以和快速排序一较高下。 希尔排序主要做两件事1、预排序。2、插入排序。 由插入排序的代码可知当数组越趋近于有序比较和赋值的次数也越来越少。所以预排序的目的就是使得整个数组接近有序。 上代码 void ShellSort(int* a, int n) {int gap n;while (gap 1){// 1保证最后一个gap一定是1// gap 1时是预排序// gap 1时是插入排序gap gap / 3 1;for (size_t i 0; i n - gap; i){int end i;int tmp a[end gap];while (end 0){if (tmp a[end]){a[end gap] a[end];end - gap;}else{break;}}a[end gap] tmp;}} } 要点解释 1、gap代表的含义是下标相减为gap的元素为一组进行插入排序。此举的意义是使得On^2)的复杂度造成的影响尽可能小因为a*(n/a)^2小于n^2a为任意整数。 2、而当gap等于1时再进行排序就是插入排序了。 3、gap的大小实际上由写代码的人自己决定没有一定gap越大或者gap越小的效果最好但可以确定的是经过预排序的插排会比直接插排要更快。 4、上述代码中的gap是一个效果较好的gap可以参照并直接使用。 本篇内容到此结束谢谢大家的观看 觉得写的还不错的可以点点关注收藏和赞一键三连。 我们下期再见~ 往期栏目 一文带你入门二叉树-CSDN博客 栈和队列的介绍与实现-CSDN博客 设计扫雷游戏_扫雷游戏设计-CSDN博客
http://www.dnsts.com.cn/news/192395.html

相关文章:

  • php 做的应用网站基于构件的软件开发流程
  • 课程网站建设情况wordpress企业主题排行榜
  • 英文网站seowordpress更换ssl
  • 内力网站建设0元开店0元铺货无加盟费开网店
  • 网站模板 招聘电子商务系统的构成
  • 装饰网站建设软件下载维护网站英语
  • 滨海新区做网站网站名称可以是域名
  • 像饿了码的网站建站有吗国外自建站怎么样
  • o2o分销系统网站建设wordpress title description
  • 电影网站怎么制作网站做一半能退吗
  • 学院网站建设项目的成本计划书做网站的个人总结
  • 做h5免费的网站有建设工程施工合同范文
  • 网站空间续费多少钱wordpress文章统计
  • 建设工程造价管理协会网站安阳县实验中学
  • 营销型官方网站国外包装设计欣赏网站
  • 网站建设一般用什么编程怎么做网站教程html文本文档
  • 东坝地区网站建设wordpress selva
  • 江西省宜春市建设局网站古典风格中药医药企业网站模板源码
  • 国外网站源代码网站营销成功的案例
  • 铜陵网站建设关于网站的制作
  • 表白网站在线制作软件徐州建站网页建设
  • 江西核工业建设有限公司网站优质的seo快速排名优化
  • 益阳高端网站建设南京营销型网站建设
  • 网络营销研究现状文献综述seo推广优化收费
  • 网站开发时间利用影视网站做cpa
  • 网站界面需求百度网页制作网站建设
  • 建网站金坛哪家强?简单动画制作
  • 石家庄站布局图wordpress国外模板下载
  • 嘉兴 做网站 推广直播网站建设模板
  • 苏州市建设中心网站首页wordpress 按钮样式