我如何打印排序的数组?

时间:2014-10-21 19:19:37

标签: java

我这里有一个程序,用来计算用户输入的一定数量元素的中位数;但是我想在程序结束时显示排序列表。你可以看到我已经对元素进行了排序,但我想不出有什么方法可以在最后显示排序的数组。提前谢谢。

public static void main(String[] args) { 
    Scanner sc = new Scanner(System.in);

    System.out.println("How many numbers do you want a median of?");
    int num = sc.nextInt();

    System.out.println("Enter the numbers: ");
    int [] array = new int [num];

    for (int i = 0 ; i < array.length; i++ ) {
      array[i] = sc.nextInt();
    }

    int median = median(array);
    System.out.println(median+" is a median of entered numbers.");
}


public static int median (int [] array) {

  int n = array.length;
  int temp;   
  for (int i=0; i < n-1; i++) {
    for(int j=1; j < n-i; j++) {
      if (array [j-1] > array [j]) {
        temp = array [j-1];
        array [j-1] = array [j];
        array  [j] = temp;
      }
    }
  }
  int median;
  if (n % 2 == 0) {
    median = (array [n/2-1]);
  }
  else {
    median = array [(n/2)];
  }
  return median;
  }
}

2 个答案:

答案 0 :(得分:2)

在功能

public static int median (int [] array) 

您通过引用传递array。这意味着您的排序结果将在main中显示。您正在对阵列进行排序。

在main结束时,只需设置一个打印数组每个元素的循环。

答案 1 :(得分:2)

如果我理解正确,你只需打印一个数组?调用int median(int [])方法后,数组已经排序。你只需打印它:

for(int i = 0; i < array.length; i++)
    System.out.println(array[i]);

array var是一个Object(所有数组都是Java中的对象),因此通过方法调用只发送指向对象的指针,而不是对象的副本。

希望有所帮助。