我现在有一个4个元素的数组,想排序,假设排序算法为sort,在我的程序里,要调用sort无穷多次。我用过冒泡、快速排序,哪位仁兄能分析分析,采用哪种算法更节省时间。
   若提供一个有价值的分析,我会加倍给分....

解决方案 »

  1.   

    对了,我忘了强调最最重要的一点:哪个算法更能降低CPU的利用率????
    我用冒泡、快速排序,没看出二者在CPU利用率降低上有太大的区别,CPU利用率几乎是一样的。
      

  2.   

    快速排序时间复杂度是O(nlogn)
    冒泡是O(n^2)。
    显然快排更快。
      

  3.   

    快速排序算法稳定,速度快,时间复杂度o(nlogn)
      

  4.   

    各位,我觉得冒泡排序效率高。原因简单:排序元素少,只有4项。最差情况为O(16)。且不用函数递归。快排在基数比较大时现出它的威力。所有排序方法的效率因基数大小差别很大。如果再考虑数据移动,在元素较少的情况下,应是选择排序较好。如100个元素排序,最坏情况下,冒泡10000次,快排100×lg100=200次,最坏也是10000次(完全逆序)。我认为在这种情况下,应考虑如何减少频繁排序的需求更为重要。
      

  5.   

    再说一句,在基数小的情况下,没必要讨论排序效率。用冒泡、快速排序,没看出二者在CPU利用率降低上有太大的区别,CPU利用率几乎是一样的证明了我的说法是对的。
      

  6.   

    呵呵,直接使用STL里面的sort,让STL去考虑底层使用什么算法吧。只有当排序真正成为系统的效率瓶颈的时候才考虑优化他,要避免过早优化:)如果真的要优化,针对各种可能的对你有意义的情况,分别采用不同的算法,然后决定采用哪一个。
      

  7.   

    快速排序的时间复杂度是o(nlogn)
    有更快的,时间复杂度是o(n),名字记不得了,好象叫一步到位法。
      

  8.   

    CPU利用率?
    当你在大型应用中,CPU占用率都是100%