找到第n个最小的数字

时间:2013-12-29 19:28:58

标签: java

这是我的代码

import java.util.Scanner;

public class NthSmallest{
  public static void main (String [] args){
    Scanner input = new Scanner(System.in);
    System.out.println("Please enter the size of the array");

    final int N = 15;
    int n  = input.nextInt();

    int array[]  = new int [N];
    System.out.println("enter 15 number ");

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

    System.out.println(findNthSmallest(array, n  ));
  }

  public static int findNthSmallest( int array[], int n  ){
    int i, j,t=0;
    for(i = 0; i < n; i++){
      for(j = 1; j < (n-i); j++){
        if(array[j-1] > array[j]){
          t = array[j-1];
          array[j-1]=array[j];
          array[j]=t;
        }
      }
    }

    return array[n-1];
  }
}

当我想找到fifthSmallestNumber并输入5作为第一个输入时,程序会找到数字5而不是第五个最小数字。我该如何解决?

2 个答案:

答案 0 :(得分:1)

在你的for循环中,它应该是:

for(i = 0; i < array.length; i++){
      for(j = 1; j < (array.length-i); j++){

答案 1 :(得分:0)

试试这个:

public static int findNthSmallest(int[] array, int n) {
    Arrays.sort(array);
    return array[n-1];
}