在最差情况下复杂度仍然是O(nlogn)的排序算法是啥算法
被@pengpeng yao召唤答题。@charisna的图基本上是正确的,但是有些小错误.Shell希尔排序的复杂度和增量序列的选取有关,这张表一概而论是不合适的,并且表中的结果也不是目前最优的增量序列。快速排序的附加空间复杂度(不计原始数组),Wikipedia上写的是平均O(logn)最坏O(n)。但是如果选择较短的子序列递归,加上尾递归优化,我认为最坏附加空间复杂度可以优化到O(logn)归并排序的附加空间复杂度可以到O(logn),使用一种原地归并算法,一步归并时间O(n),只需要O(1)空间,但递归栈需要O(logn)。Wikipedia上说in-place版的merge sort比较慢需要 【在最差情况下复杂度仍然是O(nlogn)的排序算法是啥算法】
的时间,似乎也不对,估计它的in-place merge不是最优的。In-place merge的算法见http://www.dcs.kcl.ac.uk/technical-reports/papers/TR-04-05.pdf
■网友
最有名的有 - Heapsort - 刚知道原来叫堆排序, merge sort 归并排序, introsort内省排序 - 是一种heapsort 和quick sort的结合, patience sorting, smoothsort - heapsort一种变种,当序列已经接近排好的时候复杂度接近O(n) - 等等binary tree sort也是都是最坏情况。quicksort 平均是nlogn
推荐阅读
- 销量|丰田销量最差TNGA车型,加持双擎后,奕泽和C-HR能崛起?
- 在1对多的情况下,有啥好的存储方式及查找方法
- 银行存折在非户主本人的情况下怎样修改密码
- 写小说赚银子,在不考虑其他因素的情况下···那个网站贴小说的福利和待遇最好是创世中文吗
- Mac Air 2015 只有在很靠近路由器的情况下才能连上网咋办
- 仅用来看txt的网络小说的情况下,掌阅、kindle、汉王的电纸书哪个使用体验更好
- airbnb在未与我(房东)沟通的情况下,直接取消房客的预定
- 怎样让图片尽可能小的情况下,保持高清
- 是哪些人在怎么样的情况下发动建立了“十年后”这个网站
- 怎样在几乎没有资源和经验的情况下开始做一个智能硬件产品