如题所述,限制条件是只用一个数组或列表,而且大小很小比如10来排序比如100个甚至1000或者10000个随机数,不能再用数组或列表或其他集合类的数据结构了,怎么排???小弟我想了好久还没有一个比较好的方案,于是上来请大家给点思路,谢谢。

解决方案 »

  1.   

    我的想法是N长的数组,先对前n进行排序,然后将n+i插入到n有序队列中(0<i<N-n).
    这样就得到了一个N-n的需要排序数组.然后依次再重复.等于把问题化为三个问题:
    1.n长数组排序.
    2.n长有序数组的数据x的插入.
    3.递归不过貌似效率比较低,第2点有优化的余地.
      

  2.   

    谢谢2楼.
    准确来说题意如下:如何只用一个大小为10的数组或列表来排序1000个随机整数?要求比较的次数尽量少,可以定义其他变量,但数组或列表之类的集合数据结构只可以用一个(大小为10的数组或列表).可以用Java或C/C++实现.请大家指点下,谢谢。