排序算法:哪个更快? 我现在有一个4个元素的数组,想排序,假设排序算法为sort,在我的程序里,要调用sort无穷多次。我用过冒泡、快速排序,哪位仁兄能分析分析,采用哪种算法更节省时间。 若提供一个有价值的分析,我会加倍给分.... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 对了,我忘了强调最最重要的一点:哪个算法更能降低CPU的利用率????我用冒泡、快速排序,没看出二者在CPU利用率降低上有太大的区别,CPU利用率几乎是一样的。 快速排序时间复杂度是O(nlogn)冒泡是O(n^2)。显然快排更快。 快速排序算法稳定,速度快,时间复杂度o(nlogn) 各位,我觉得冒泡排序效率高。原因简单:排序元素少,只有4项。最差情况为O(16)。且不用函数递归。快排在基数比较大时现出它的威力。所有排序方法的效率因基数大小差别很大。如果再考虑数据移动,在元素较少的情况下,应是选择排序较好。如100个元素排序,最坏情况下,冒泡10000次,快排100×lg100=200次,最坏也是10000次(完全逆序)。我认为在这种情况下,应考虑如何减少频繁排序的需求更为重要。 再说一句,在基数小的情况下,没必要讨论排序效率。用冒泡、快速排序,没看出二者在CPU利用率降低上有太大的区别,CPU利用率几乎是一样的证明了我的说法是对的。 呵呵,直接使用STL里面的sort,让STL去考虑底层使用什么算法吧。只有当排序真正成为系统的效率瓶颈的时候才考虑优化他,要避免过早优化:)如果真的要优化,针对各种可能的对你有意义的情况,分别采用不同的算法,然后决定采用哪一个。 快速排序的时间复杂度是o(nlogn)有更快的,时间复杂度是o(n),名字记不得了,好象叫一步到位法。 CPU利用率?当你在大型应用中,CPU占用率都是100% CSocket如何判断连接断开 为何不能填充按钮的背景 Modem放音效果为什么很差? 请问如何让一个对话框显示 100分求一锁屏程序,像屏保设了密码一样,没有密码就什么都不能做 散分啦~ ~ 使用SDK函数怎么样动态改变窗口的大小呢?SetWindowRgn我已经试来了,效果不好,还有没有其它的呢? 小问题 在对话框中加菜单后,随着菜单的改变能不能把对话框换成另一个对话框? 请问一个消息问题? DCOM为什么会拒绝服务呀~我都快疯了!!!!!!! CFile有关的问题
我用冒泡、快速排序,没看出二者在CPU利用率降低上有太大的区别,CPU利用率几乎是一样的。
冒泡是O(n^2)。
显然快排更快。
有更快的,时间复杂度是o(n),名字记不得了,好象叫一步到位法。
当你在大型应用中,CPU占用率都是100%