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

jing.me wordpress主题西安seo顾问

jing.me wordpress主题,西安seo顾问,成都建筑公司排名前十,济宁网站建设 水木常见排序算法的时间复杂度、空间复杂度及稳定性分析: 时间复杂度空间复杂度是否有稳定性基于比较的排序算法选择排序 O(N^2)O(1)否 冒泡排序O(N^2)O(1)是插入排序O(N^2)O(1)是归并排序O(N*logN)O(N),每次需要额外一个数组用于拷贝是快排O(N*log…

 常见排序算法的时间复杂度、空间复杂度及稳定性分析:

时间复杂度空间复杂度是否有稳定性
基于比较的排序算法选择排序  O(N^2)O(1)否        
冒泡排序O(N^2)O(1)
插入排序O(N^2)O(1)
归并排序O(N*logN)O(N),每次需要额外一个数组用于拷贝
快排O(N*logN)O(logN)否        
堆排序O(N*logN)

O(1),数组本身可以作为堆,用的只是有限几个变量

否,堆插入的过程不稳定如果最后插入一个
不基于比较的排序算法计数排序O(N)O(M),M表示数的枚举值个数
基数排序O(N)O(N)

(1)不基于比较的排序,对样本数据有严格的要求,不易改写

(2)基于比较的排序,只要规定好两个样本怎么比大小就可以直接复用。

(3)基于比较的排序,时间复杂度的极限是O(N*logN)

(4)时间复杂度为O(N*logN),额外空间复杂度低于O(N)且稳定的基于比较的排序是不存在的。

(5)为了绝对速度选快排,为了省空间选堆排,为了稳定性选归并

稳定性分析:

选择排序:肯定做不到稳定性,比如原来的数组是[5,5,5,5,5,3,5,5],每次选最小的与0位置做交换,那原来0位置的5会越过1,2,3,4位置的5来到5位置。

冒泡排序:取决于相等的时候怎么处理相等,如果相等不交换就能保证稳定(如果相等还要交换的话也就不会有稳定性了)

插入排序:和冒泡排序一样,取决于怎么处理相等。

归并排序:也是处理相等的时候,相等的时候先拷贝左边的就可以保证稳定性(先拷贝右边不行,因为左组的元素在原来数组中是在右组的元素之前的)。

快速排序:无法保证稳定性,因为Partition过程做不到稳定,比如原数组是[4,4,4,4,1,4,3],我们以快排1.0为例,先选数组最后一个数字去做划分值,当遍历到4为止的1的时候,1比3小,需要和0位置的4做交换,0位置的4换到了4位置,跨过了1,2,3位置的4,其他快排也是类似的

堆排序:完全保证不了稳定性,整体调成大根堆或者小根堆的过程就不稳定,比如数组是[4,4,4,4,4,4,4,4,6],前7个4插入结束后,堆是这样的:

 当最后一个6来了之后需要先跟3交换,然后和1交换,然后和0交换

 原数组中1位置的4跑到了2位置之后,3位置的4跑到了4,5,6之后

三种O(N * logN)的比较排序,如果追求速度用快排,因为

单纯追求速度使用快排:虽然时间复杂度是一样的,但是快排的常数时间更好

追求稳定性用归并:三个算法中唯一的稳定性算法

追求绝对的省空间适用堆排序:数组本身可以作为堆,用的只是有限几个变量

目前来说时间复杂度为O(N*logN),额外空间复杂度低于O(N)且稳定的基于比较的排序是不存在的。

Java自带的Arrays.sort的排序逻辑:

如果是基础类型,使用改进后的快排,因为基础类型排序,稳定性不重要而快排确实是最快的,时间常数最好的

如果是引用类型使用归并排序,也许稳定性不一定需要,但是未知的东西我们不能认为没有,只能考虑最差情况,为了保证稳定性,O(N*logN)只能用归并,且要保证相等时拷贝左边半区的元素

部分语言中会在快排的算法中写类似L + 60 < R使用插入排序的逻辑,这是因为虽然插入排序的时间复杂度是O(N^2),但是它的常数项更好,在数据量比较小的情况下插入排序执行时间可能小于快速排序,60是在长期实验条件下确定的值,这是工程上对于排序算法的改进。

http://www.shuangfujiaoyu.com/news/57297.html

相关文章:

  • wordpress api接口seo营销工具
  • 做的网站手机打不开怎么办网站快速排名互点软件
  • ubuntu 做网站 分区企业管理培训视频免费
  • 如何在自己的网站上做h5页面抖音seo查询工具
  • 河南濮阳建设委员会官方网站深圳大鹏新区葵涌街道
  • 优秀的外贸网站案例nba今日最新消息
  • 构站网做网站建设优化的公司排名
  • 做新闻网站资质在哪里推广比较好
  • 做网站用什么软件方便广州seo外包公司
  • 哪个网站可以做全景图乔拓云网微信小程序制作
  • 官方网站管理办法品牌营销策略包括哪些内容
  • 用dw做的网页如何上传到网站石首seo排名
  • 西安个人做网站深圳做网站的
  • wordpress会话过期北京seo培训机构
  • 律师个人网站有用吗西安网站seo哪家公司好
  • 有前景的网站建设北京seo经理
  • 网站建设方案模板下载集客营销软件
  • 给你一个网站你如何做优化竞价代运营公司哪家好
  • 哈密市住房和城乡建设局网站韶关网站seo
  • 百度推送 wordpress长治seo
  • 做个网站每年都要交域名费吗网络销售平台排名
  • 网站流量分析方法抖音seo关键词优化排名
  • 破解版软件下载网站武汉seo优化顾问
  • 做赚钱问卷调查的网站好百度竞价排名机制
  • 济南可信网站seo研究中心倒闭
  • 宁波制作手机网站苏州seo门户网
  • 武汉网站建设索王道下拉seo外链推广工具
  • php微信微网站怎么做怎么快速推广app
  • seo网站建设 大时代网站快速被百度收录
  • joomla做类似赶集网的网站今日头条网页版入口