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

丽水市莲都区建设分局网站网站备案和icp备案

丽水市莲都区建设分局网站,网站备案和icp备案,什么是我的wordpress,外贸网站搜索 引擎优化方法#x1f984;个人主页:修修修也 #x1f38f;所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 一.直接插入排序简介及思路 直接插入排序(Straight Insertion Sort)是一种简单直观的插入排序算法. 它的基本操作是: 将一个数据插入到已经排好的有序表中,从而得到一个新的,数… 个人主页:修修修也 所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 一.直接插入排序简介及思路 直接插入排序(Straight Insertion Sort)是一种简单直观的插入排序算法. 它的基本操作是: 将一个数据插入到已经排好的有序表中,从而得到一个新的,数据数增1的有序表.直到所有的数据插入完为止,得到一个新的有序序列. 在实际生活中,我们玩扑克牌时就使用了插入排序的思想: 算法动图演示如下: 二.直接插入排序的代码实现 算法实现步骤:(以升序为例) 当表中只有第一个数据的时候它是一定有序的,因此我们从第二个元素开始向前面的有序表插入数据.具体插入方式,使用tmp记录下当前待插入元素,然后tmp从后向前与有序表中的元素逐一比对,如果tmp小于比对元素,则比对元素向后挪动一个位置.直到tmp不小于比对元素时,将tmp插入到比对元素后面.循环将数据向前插入,直到将待排数组的所有数据元素都插入进有序表,排序完成. 清楚了逻辑和概念后,我们的代码实现就比较简单了.代码如下: //插入排序(升序 void InsertSort(int* a, int n) {for (int i 1; i n; i){int end i - 1;int tmp a[i];//将tmp插入到[0,end]这个有序表的区间里while (end 0){if (tmp a[end]) //如果tmp小于比对元素,将比对元素向后挪{a[end 1] a[end];end--;}else //如果tmp不小于比对元素,将tmp插入到比对元素后面{break;}}a[end 1] tmp;} } 三.直接插入排序的时间复杂度分析 最好情况时间复杂度 直接排序的最好情况是每个tmp向前插入时都发现自己恰好不小于前面有序表中的最后一个元素,这时就直接将自己放在自己原本的地方就可以继续向前插入下一个元素了,即数组完全顺序的情况: 易得此时的: 算法执行次数为: 算法时间复杂度为: 最坏情况时间复杂度 直接插入的最坏情况是遇到每一个tmp都直到比对到前面有序表的0号位置才插入,即数组完全逆序的情况: 此时算法每趟的交换次数累加起来就是1 2 ...... (n-2)(n-1),可以发现当算法执行结束,所有次数累加起来恰好是一个等差数列,我们利用求和公式可得: 算法执行总次数为: 算法时间复杂度为: 四.直接插入排序的优化 我们通过对前面直接插入排序的分析可以发现,当数组整体完全逆序时: 算法的执行总次数为: 算法的执行总次数为: 但是如果我们面对的是前后两部分分别逆序的数组时: 算法的执行总次数为: 算法的执行总次数为: 此时算法的效率就提高了: 如果我们再分为前后四部分逆序的数组时: 算法的执行总次数为: 算法的执行总次数为: 此时算法的效率又提高了: 通过前面的分析,我们可以发现,随着我们分的部分的增加,算法的执行次数在有规律的减少: 分成k部分与算法执行总次数有如下关系: 如果我们令k无限大,此时算法的执行次数就可以忽略n^2项,而只剩下1/2n项了 其实k无限大的情况,就是数组被分为只有前后两个元素逆序的情况: 这种情况下,算法的执行总次数:(11......11) 算法的执行总次数: 通过上面的分析,我们可以得到一个结论: 当数组元素越接近基本有序,直接插入排序算法的时间复杂度就会越低. 那么我们是不是可以在正式进行插入排序之前将数组元素先简单预排序一下呢,即在预排序中,我们尽量将大一些的元素放在数组靠后的位置,小一些的元素放在数组靠前的位置,这样再进行直接插入排序就能使效率提高很多. 如果你能够理解这一直接插入排序算法的优化思路,那么恭喜你,你已经理解了希尔排序的思想,接下来我会在另一篇博客中,详细介绍怎样通过这一思路优化直接插入排序算法,最终构造出非常著名的希尔排序算法. 感兴趣的朋友可以直接点击下方文章链接查看希尔排序算法的相关内容: 【数据结构】八大排序之希尔排序https://blog.csdn.net/weixin_72357342/article/details/135043566 结语 希望这篇直接插入排序算法详解能对大家有所帮助,欢迎大佬们留言或私信与我交流. 有关更多排序相关知识可以移步: 【数据结构】八大排序算法https://blog.csdn.net/weixin_72357342/article/details/135038495?csdn_share_tail%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22135038495%22%2C%22source%22%3A%22weixin_72357342%22%7Dfromshareblogdetail 学海漫浩浩,我亦苦作舟!关注我,大家一起学习,一起进步! 相关文章推荐 【数据结构】八大排序之冒泡排序算法 【数据结构】八大排序之希尔排序算法 ...... 数据结构排序算法篇思维导图:
http://www.w-s-a.com/news/223923/

相关文章:

  • 瑞安微网站建设广州推广
  • 做旅游宣传网站的流程图中国企业集成网电子商务
  • 开发商城网站开发成交功能网站
  • 网站建设公司专业公司排名搭建网站的企业
  • 网站建设难吗海南智能网站建设报价
  • 企业网站建设选题的依据及意义校园网站建设的论文
  • 网站版面设计方案水电维修在哪个网站上做推广好些
  • 邹平建设局官方网站企业宣传片广告公司
  • 南京建设集团网站建站极速通
  • 网站建设与推广员岗位职责网站开发应如何入账
  • 企业网站的作用和目的手机回收站
  • 大连零基础网站建设培训电话郎溪做网站
  • 成都科技网站建设注册公司最少需要多少注册资金
  • 找公司做网站注意事项麻城建设局网站停办
  • 沧州企业做网站wordpress 消息通知
  • 网站开发外包计入什么科目怎样申请网站空间
  • 西安建设局网站小孩把巴塘网站建设
  • 做网站 客户一直要求改郑州做优惠券网站的公司
  • 专门做特卖的网站是什么东北石油大学秦皇岛吧
  • 网站建设需要云主机吗wordpress 下载数据表插件
  • 集团网站建设哪个好石龙镇仿做网站
  • 网站建设费税率是多少项目备案信息查询
  • 网站开发php有哪些权威发布型舆情回应
  • 凡科建站有哪些弊端百度手机怎么刷排名多少钱
  • 南山网站公司在招聘网站做销售工资高吗
  • 百度联盟怎么加入赚钱合肥seo按天收费
  • 网站建设与用户需求分析加盟店排行榜加盟项目排行榜
  • 柳州市诚信体系建设网站wordpress建手机网站吗
  • 网站策划书是什么水产公司网站源码
  • 温州做网站多少钱网站服务器机房