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

做水果的b2b网站青柠影院免费观看电视剧高清

做水果的b2b网站,青柠影院免费观看电视剧高清,做网站首页的图片素材,网页图片怎么保存C STL sort函数的底层实现 sort函数的底层用到的是内省式排序以及插入排序,内省排序首先从快速排序开始,当递归深度超过一定深度(深度为排序元素数量的对数值)后转为堆排序。 先来回顾一下以上提到的3中排序方法: 快…

C++ STL sort函数的底层实现

sort函数的底层用到的是内省式排序以及插入排序,内省排序首先从快速排序开始,当递归深度超过一定深度(深度为排序元素数量的对数值)后转为堆排序。

先来回顾一下以上提到的3中排序方法:

  1. 快速排序:先选一个基准值(一般为首值),将比它大的数置于其右侧,将比它小的数置于它左侧,那么这个基准值所在的位置定是整个数组的有序位。然后递归该基准左右两子数组。算法复杂度为nlogn;
  2. 堆排序:将数组建立成大顶堆,重复从堆顶取出数值最大的结点(把根结点和最后一个结点交换,把交换后的最后一个结点移出堆,移出的这个数值为未排序数组的最后),并让残余的堆维持大顶堆的性质。时间复杂度为nlogn;
  3. 插入排序:对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。时间复杂度为n2;

其中先讲下快排和堆排,快排的平均复杂度为nlogn,但是它的复杂度是根据基准值来决定的,基准值选择的不好,最坏的复杂度会达到n2,而堆排序的复杂度是一定的为n*logn,那为什么不直接使用堆排序呢,是因为在将堆顶值与最后一个结点值交换并移除最后一个值后,在重新建堆的过程中,交换到堆顶的值显然比每个结点要小,但还是要经过对比判断,这个判断其实是多余的,因此这是它相比快排较慢的原因。

于是,内省式排序结合了快排和堆排的特点,当快速排序到大一定深度(2logn)时,采用堆排序,以维持n*logn的复杂度。

在sort函数中,内省排序过程中子数组长度小于16时,采用的是插入排序,因为当数组长度较短时,就是数组已经大致排序过了,对大致有序的数组(即逆序对不多了)用插入排序的算法复杂度会很小,可以想象成理牌的过程。

http://www.wangmingla.cn/news/37829.html

相关文章:

  • 青海住房建设厅网站域名比价网
  • 怎样网站备案表重庆seo网站哪家好
  • wordpress后台仪表盘铁力seo
  • 海南医院网站建设江苏短视频seo搜索
  • 软件测试培训总结南通seo网站优化软件
  • 做淘宝客网站是如何盈利的百度推广营销
  • 网址正能量郑州官网网站推广优化公司
  • 公司网站建设苏州劳伦超链接友情外链查询
  • 怎么做自己的导航网站爱用建站官网
  • 电影网站做流量吗广州番禺发布网
  • 溧水区住房建设局网站百度账号怎么改用户名
  • 好的做彩平图的网站宁波seo排名优化培训
  • 怎么做教育网站2023年九月份新闻
  • 包头学做网站哪里有整站优化
  • 小型b2c网站建设费用百度首页优化
  • 建站行业有前途seo外链发布技巧
  • 免费独立站自建站平台注册网站
  • 如何做好网站建设关键词分为哪三类
  • 昆明网站建设公司排名百度推广平台
  • 桃浦做网站seo搜索引擎优化入门
  • 国外的网站模板普通话手抄报文字内容
  • 拉萨市住房和城乡建设局网站seo优化或网站编辑
  • 做网站卖东西靠谱不合肥网站
  • 做注册会员和购物的网站需要什么网络营销策划的内容
  • 工业企业网络推广关键词排名优化
  • wordpress自定义分类模板下载seo关键词优化哪个平台好
  • html代码模板免费seo百科大全
  • 做网站江门中国婚恋网站排名
  • 网站建设标题怎么写windows优化大师好不好
  • 华为建站模板2023年8月新冠