如题,写出源代码,用java写,实在不行,用c也可以,c++就算了,本人不太懂。给出时间复杂度。
另外,再问一句,全世界或全中国有几个可以说出“不就算法,有什么大不了”的这句话?如数不胜数,可以说数不清。

解决方案 »

  1.   


    没有最快的算法   只有最适合的A序列用B算法最快  而很可能C序列用B算法却最慢
      

  2.   

    我也同意先有需求再有算法。
    算法时间复杂度可以分为最优情况下,最差情况下,平均情况时间复杂度,不同算法这三个复杂度不同,如果数据偏向最优,那我就根据最优时间复杂度,如果数据往往是最差的,我就用最差时间复杂度来做比较标准。另外,根据定理:任意一个比较排序算法在最坏情况下,都需要做Ω(nlgn)次的比较。也就是普通排序,最差情况下时间复杂度不可能低于Ω(nlgn)。但是如果需求一变,我可以选择其他针对特殊数的排序算法,时间甚至可以做到线性,如计数排序法、基数排序法、桶排序法等。
      

  3.   

    比如给1-100之间100个自然数,最差最差在线性复杂度下可以完成排序;
    给100个数,最差时间复杂度是Ω(nlgn)如果你真想要知道排序算法,推荐看严蔚敏的《数据结构及算法》,还有《算法导论》。
      

  4.   

    原来有个帖子的
    http://topic.csdn.net/u/20080624/11/55e5a350-d260-4a35-a02a-71b4c1795a00.html
      

  5.   

    借用一下,存个URL
    http://pickup.mofile.com/8095989683778691 
      

  6.   

    前段时间在 wiki 中看到一些很好玩的算法,比如 bogo 排序算法,这个算法的复杂度是 O(n*n!),这个算法根据 wiki 上的解释就是一堆乱序卡片抛起后落下,检查是否排好序的,如果没排好,再抛。哈哈 :-)
      

  7.   

    使用Array.sort() 方法最省事, 它应该用的是快速排序。封装好的可以直接用。
      

  8.   

    http://blog.csdn.net/blh/archive/2009/06/06/4248482.aspx
    我写的几个,不过是C的
      

  9.   

    divide and conquer 算法对于超大规模的数量排序有明显疗效 复杂度是NLOG2N