题目是:
    给1000个int整数(有可能是负数)排序,只能用一个只可以存放10个数的array或者是list,可以用一些局部变量,不能再用其它array或collection等。
要求:
   1.随机产生这1000个int整数,打印这1000个int整数及排好序后的结果。
   2.计算统计所有比较的次数,并要求尽可能的减少比较次数。

解决方案 »

  1.   

    java中自带排序函数Array.sort();
      

  2.   


    放String里吧
    用个字符隔开,每10个一隔开,每100个再隔开。
      

  3.   

    他只有一个可以存放10个数的数组或list,我想也只有这样存了。要不吧他们存到文件中,再读出来。
      

  4.   

    package sort;public class MyBinaryTree {
    private int data;
    private MyBinaryTree leftpoiter;
    private MyBinaryTree rightpoiter; public MyBinaryTree(int data) {
    this.data = data;
    leftpoiter = null;
    rightpoiter = null;
    } public void printMidOrder(MyBinaryTree mbt) {
    if (mbt != null) {
    printMidOrder(mbt.getLeftpoiter());
    System.out.print(mbt.getData() + ",");
    printMidOrder(mbt.getRightpoiter());
    }
    } public int getData() {
    return data;
    } public void setData(int data) {
    this.data = data;
    } public MyBinaryTree getLeftpoiter() {
    return leftpoiter;
    } public void setLeftpoiter(MyBinaryTree leftpoiter) {
    this.leftpoiter = leftpoiter;
    } public MyBinaryTree getRightpoiter() {
    return rightpoiter;
    } public void setRightpoiter(MyBinaryTree rightpoiter) {
    this.rightpoiter = rightpoiter;
    } public void insertTree(MyBinaryTree root, int data) {
    if (data >= root.data) {
    if (root.rightpoiter == null) {
    root.rightpoiter = new MyBinaryTree(data);
    } else {
    insertTree(root.rightpoiter, data);
    }
    } else {
    if (root.leftpoiter == null) {
    root.leftpoiter = new MyBinaryTree(data);
    } else {
    insertTree(root.leftpoiter, data);
    }
    }
    }
    }
      

  5.   

    package sort;import java.util.Random;public class SortInteger { public static void main(String[] args) {
    Random ran = new Random();
    int int1 = ran.nextInt(1000);
    String str1 = int1 + "";
    MyBinaryTree mbt = new MyBinaryTree(int1);
    for (int i = 0; i < 999; i++) {
    int int2 = ran.nextInt(1000);
    mbt.insertTree(mbt, int2);
    str1 = str1 + ",";
    str1 = str1 + int2;
    }
    System.out.println(str1);
    mbt.printMidOrder(mbt);
    }}