两种排序算法时间复杂度运行时间相差100ms是个什么概念,用排序算法时间复杂度的角度来考虑 是图像处理方面的排序算法时间复杂度

快速排序的时间复杂度是怎么推算出来的 [问题点数:10分结帖人zzz2003526]

说快速排序的时间复杂度最好为O(nlgn),即:每次都可以分为均匀两段,根据这个如何推算出时间复杂度为O(nlgn)????????

每次分成两段,那么分的次数就是logn了哦每一次处理需要n次计算,那么时间复杂度就是nlogn了!

注意这是平均時间复杂度因为你分的时候可能并不均匀!

楼上的正确,我1楼那里说错了最坏时间复杂度是n的平方才对。

根据平均情况来说是O(nlogn),因为在數据分布等概率的情况下对于单个数据来说在logn次移动后就会被放到正确的位置上了

最坏是O(n^2).这种情况就是数组刚好的倒序,然后每次去中間元的时候都是取最大或者最小

时间复杂度这些去看看排序算法时间复杂度书就知道,我们的教材《排序算法时间复杂度设计与分析》(王晓东版)P34-P39有介绍

“每次分成两段那么分的次数就是logn了哦”?为什么呢?

匿名用户不能发表回复!

双向链表的排序排序算法时间复雜度用什么比较好呢? [问题点数:20分结帖人YoungMaster]

在顺序结构中快速排序是很好的排序算法时间复杂度了,时间复杂度n*log(n)双向链表的排序排序算法时间复杂度,用什么比较好呢求方法名称和基本思想。

呵呵, 没研究过, 估计冒泡应该是个好的选择(因为链表仅能扫描, 而冒泡排序算法时间复杂度也就是扫描)

楼上谢谢你冒泡我知道,但还有没有更好的了

排序算法时间复杂度的问题怎么没人关注呀??

基于双向链表可以实现快速排序

不过pivot值的选取稍微麻烦一点每次都要遍历一遍链表


对链表的排序,我觉得插入排序较好

楼上有理,插入排序效果應该不错:由于是链表省却了数据移动


pivot就是那个排序的基准,比他小的放到一边比他大的放到另一边。但是选pivot时不太好选我编程试試吧,这个帖子先不结大家在研究研究,我先用插入排序试试毕竟好实现呀,然后在做快速排序等研究明白了在给大家加分。谢谢諸位热心的回答

明白了, 如果序列的无序程度很大的话, 那么这个基准选什么不都一样? 不妨选列首元素?

不好,经过几次交换以后基本已经有序了所以最好选中间点。这样能减少交换次数

匿名用户不能发表回复!

我要回帖

更多关于 排序算法时间复杂度 的文章

 

随机推荐