Ascending中的冒泡排序 - 程序无法编译

时间:2012-10-01 19:58:14

标签: java methods main bubble-sort

我需要编写一个程序,它使用冒泡排序方法和主要功能,要求用户输入他们的数组。之后,程序按升序对数组进行排序。我的程序现在询问用户的输入,但一旦发生这种情况,程序将无法编译而且我被卡住了。这是代码:

import java.util.Scanner;
public class IntSorter{
  public static int bubbleSort(int[] a){
    boolean needNextPass =true;
    for(int i=1; i<a.length && needNextPass; i++){
      needNextPass = false;
      for(int j=0; j<a.length - i; j++){
        if(a[j]> a[j+1]){
          int temp = a[j];
          a[j]=a[j+1];
          a[j+1] = temp;
          needNextPass = true;
          }
        }
      }
   for(int i=0; i<a.length; i++){
     System.out.print(a[j] + " ");
     }
   }
public static void main(String[] args){
  Scanner input = new Scanner(System.in);
  System.out.print("Enter size of array: ");
  int N = input.nextInt();
  int[] x = new int[N];
  System.out.print("Enter " +N +"numbers of your array: ");
    for(int i= 0; i<N; i++){
      x[i] = input.nextInt()
  }
  IntSorter access = new IntSorter();
  System.out.print("Your sorted array is: ");
  access.IntSorter(x);}
}

3 个答案:

答案 0 :(得分:1)

您的主要方法的最后一行是: -

access.IntSorter(x);

将此行替换为: -

access.bubbleSort(x);

使用single uppercase字符作为变量很糟糕..使用size代替数组的大小..

System.out.print("Enter " +N +"numbers of your array: ");
  for(int i= 0; i<N; i++){
      x[i] = input.nextInt()
  }

在上面的代码中,如果用户没有输入整数值怎么办?你会得到一个例外..你需要抓住那个..

答案 1 :(得分:0)

这一行似乎缺少分号:

  x[i] = input.nextInt()

您似乎在其范围之外访问变量j

  System.out.print(a[j] + " ");

答案 2 :(得分:0)

您可以使用i代替未定义的j

for (int i = 0; i < a.length; i++) {
   System.out.print(a[i] + " ");
}

另外

public static int bubbleSort(int[] a) {

没有int返回值;

您可以使用编译器或IDE来帮助突出显示这些问题。