package arraySort;
import java.io.IOException;
import java.io.File;
import java.util.*;
public class openFile {
int x;
static int i;
static int[] myList = {100};
public static void main(String[] args){
try{
File myFile = new File("arraySort.txt");
Scanner scan = new Scanner(myFile);
while(scan.hasNext()){
myList[i] = scan.nextInt();
BubbleSort(myList);
System.out.println(myList[i]);
}
catch(IOException e){
System.out.println("File not found!");
}
}
public static void BubbleSort(int[] x){
if (x[i] > x[i + 1]){
int temp;
temp = x[i];
x[i] = x[i+1];
x[i+1] = temp;
}
}
}
最佳答案
这里不是直接给你答案,而是一些提示:
BubbleSort()
中没有任何循环。您应该只在读入文件中的所有数字之后调用
BubbleSort()
一次。意思是,将调用移到while
循环之外。您永远不会增加变量
i
,因此您每次通过while
循环时都会覆盖myList[0]
。数组的大小不可调整。如果您尝试分配给
myList[1]
或myList[2]
,您将收到ArrayIndexOutOfBoundsException
错误。有多种方法可以解决此问题 - 一种是将其从int[] myList = {100}
更改为ArrayList myList = new ArrayList()
。您可以使用myList.add(number)
添加数字,并使用myList.get(i)
查找它们。
关于java - 如何修复这个冒泡排序程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1653773/