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

做网站公司汉狮网络专业的东莞网站设计

做网站公司汉狮网络,专业的东莞网站设计,深圳营销型网站建设公司网络服务,网站开发费用如何入帐这篇博文用来介绍直接插入排序直接插入排序基本思想#xff1a;每次将一个待排序的记录插入到已经排好序的数据区中#xff0c;直到全部插入完为止直接插入排序算法思路#xff1a;在直接插入排序中#xff0c;数据元素分为了有序区和无序区两个部分#xff0c;在这里我们…这篇博文用来介绍直接插入排序直接插入排序基本思想每次将一个待排序的记录插入到已经排好序的数据区中直到全部插入完为止直接插入排序算法思路在直接插入排序中数据元素分为了有序区和无序区两个部分在这里我们将列表左边部分作为有序区列表右边部分作为无序区有序区和无序区的大小是随着排序的进行而变化的。如最开始列表是无序的所以有序区长度为1无序区长度为列表长度-1排序结束后列表变为有序则有序区长度为列表长度无序区长度为0.具体步骤为排序过程中每次从无序区中取出第一个元素将它插入到有序区中的适当位置(即该元素放在此位置有序区仍然有序)使之成为新的有序区重复n-1次可完成排序过程。假设需要将列表从小到大排序想要将从无序区中取出的第一个元素temp插入到有序区中的适当位置需要有一个循环遍历的过程即从该元素位置处依次向前比较会有两种情况1前面的元素waitsortlist[j-1]大于temp则temp需要继续向前比较同时大于temp的元素需要后移一位2前面的元素waitsortlist[j-1]小于等于temp则temp不需要继续比较了因为temp大于有序区中最大的元素有序区伸展一位包含temp另外还需要考虑 j 的边界问题因为会用到 j-1所以 j 需要1防止越界对于无序区某一个元素temp的直接插入代码如下tempwaitsortlist[j]while j1:if tempwaitsortlist[j]waitsortlist[j-1]jj-1else:breakwaitsortlist[j]temp外层是一个列表的遍历加上上面的代码为i0ji1while jtempwaitsortlist[j]while j1:if tempwaitsortlist[j]waitsortlist[j-1]jj-1else:breakwaitsortlist[j]tempii1ji1可以看出列表的第一个元素必为有序区遍历的过程中不断扩大有序区的范围对于列表某一个元素来说就是将其插入在有序区中适当的位置外层循环遍历结束后有序区也扩充为列表长度即排序结束。该算法的时间复杂度为O(n^2)因为有两层循环时间开销比较大空间复杂度为O(1)只是用了常数阶的空间来存储变量用以直接插入排序全部代码为(实际上看了前面的相信你已经能写出来了:D直接插入排序def DirectInsertionSort(waitsortlist):i0ji1while jtempwaitsortlist[j]while j1:if tempwaitsortlist[j]waitsortlist[j-1]jj-1else:breakwaitsortlist[j]tempii1ji1return waitsortlistif __name____main__:waitsortlist[9,8,7,6,5,4,3,2,1,0]print(DirectInsertionSort(waitsortlist))运行结果为直接插入排序 (带监视哨)哨兵的概念一切为简化边界条件而引入的附加结点(元素)均可称为哨兵。在上面的代码我们可以看到有这一段while j1:内循环每一次比较前都需要判断 j 是否越界有没有不需要判断的办法呢当然有这就是哨兵的作用将上面的代码改为def DirectInsertionSortEye(waitsortlist):i1ji1while jtempwaitsortlist[j]waitsortlist[0]tempwhile tempwaitsortlist[j]waitsortlist[j-1]jj-1waitsortlist[j]tempii1ji1return waitsortlistif __name____main__:waitsortlist[0,9,8,7,6,5,4,3,2,1,0]print(DirectInsertionSortEye(waitsortlist))输出的结果为我们将waitsortlist[0]设置为哨兵传入列表的时候该位置也不能够放置有效元素用列表一个元素的空间判断越界与否的比较时间。可以看出一次循环少判断一次n次循环少判断n次当数据量较大时很明显是优于不带监视哨的直接插入排序。带监视哨的直接插入排序思想也很简单在原有基础上稍加修改即可这里不再赘述。
http://www.pierceye.com/news/662952/

相关文章:

  • 广东网站建站系统哪家好常州网站搭建公司
  • 400网站建设推广软件工程师工资
  • 专门做正品的网站手机版深圳市门户网站建设怎么样
  • 做外贸比较好的网站有哪些北京短视频代运营
  • 建站公司学习筑梦网站建设
  • 手工艺品网站建设侧胡顺个人简历表格可填写
  • 电商网站竞价推广策略淘宝做问卷的网站
  • 门窗 东莞网站建设婚庆公司收费标准
  • 网站页面下沉的特效代码网络建设存在的问题
  • 给网站做维护是什么工作网页怎么赚钱
  • 三丰云做游戏网站win主机安装wordpress
  • 网站建设黄荣vuejs做视频网站设计
  • 手机怎样下载安装建设银行网站企业通过网络推广成功的案例
  • 门户网站开发工具软件哪个公司的网络最好用
  • 河南省住房和城乡建设厅查询网站首页舆情网站推荐
  • 网页设计是网站建设与管理的内容吗公司网络营销的方案思路
  • 商业授权网站标题优化技巧
  • 班级网站做哪些方面阿里云市场网站建设
  • 2345网站登录电子工程师有前途吗
  • 网站建设企业邮箱制作网站山东平台网站建设制作
  • 仿新浪微博网站代码国家高新技术企业公示
  • 遵义网站建设公司电话多少成都网站优化seo
  • 宝安网站设计排名网站建设收费标准资讯
  • 景安怎么把网站做别名西安网站优化seo
  • 长沙专业网站建设怎么做云南昆明百度推广公司
  • 网页制作网站的大作业网站开发怎么设置打印按钮
  • 金乡网站建设哪家便宜建网站解决方案
  • 大港油田建设官方网站怎么帮人做网站
  • nginx建设网站教程wordpress文章列表格子
  • 山东网站开发学校深圳福田网站建设公司