gpt4 book ai didi

Java快速排序,从用户输入文件读取到任何数组(待排序)

转载 作者:行者123 更新时间:2023-12-01 06:26:22 24 4
gpt4 key购买 nike

你们最近怎么样,

我正在尝试用 Java 编写一些代码,该代码将从文件中读取数字(.txt 文件的每行一个 #)并将它们放入数组中,然后对数组运行快速排序。 Eclipse 显示出一些红色,我遇到了麻烦。我的错误都标有注释,以及错误是什么,如果有人可以帮助我运行它,谢谢大家!

-凯尔

好的,我更新了前两个答案,到目前为止谢谢,但还有两个错误我不太理解。

import java.io.*;
import java.util.Scanner;
import java.io.BufferedReader;
import java.io.File;


public class Lab3 {

public static void main(String[] args) throws IOException{


System.out.print("Name of file with array: ");
Scanner readIn = new Scanner(System.in);
String input=readIn.nextLine();}
**testScan1(input);** //Return Type for method is missing (but I am trying to call the method here)


public static void testScan1(String filename)

{
File file = new File(filename);
Scanner scan;
int [] array = new int[5];
try{


scan = new Scanner( file );
}
catch ( java.io.FileNotFoundException e )
{
System.out.println( "couldn't open. file not found " );
return;
}
while(scan.hasNext())
{
for( int i = 0; i <= file.length(); ++i)
{

**array[i]=scan.next();** /*Type mismatch, cannot convert from sting to int. (I moved the declaration about try?)*/




}

int partition(int arr[], int left, int right)
{
int i=left; int j = right;
int tmp;
int pivot = arr[(left+right)/2];
while (i<=j){
while(arr[i]<pivot)
i++;
while (arr[j]>pivot)
j--;
if (i<=j){
tmp=arr[i];
arr[i]=arr[j];
arr[j]=tmp;
i++; j--;
}
}
return i;
}
void quickSort(int arr[], int left, int right){
int index = partition(arr, left, right);
if (left<index-1);
quickSort(arr, left, index-1);
if (index<right)
quickSort(arr, index, right);
}
}

最佳答案

每当您处理递归算法并遇到堆栈溢出时,都是因为您的算法没有明确定义的边缘情况,从而导致递归终止。 (或者您的输入太大,但这种情况很少发生,而且这里也不是这种情况。)

您应该查看您的 quickSort() 方法,看看是什么导致它无限地调用自身。想象一下用两个镜子观察反射,其中反射从另一个反射中反弹,然后消失到无穷远......这就是这里发生的情况。

此外,在 Java 语言中,建议始终以大写字母开头类名。我会将您的类命名为 QuickSortHomework 或类似的名称。

此外,您可能想了解 if 语句在 Java 中的工作原理,以及如何定义“ block ”。您在分号和一对大括号附近有一个 if 语句,该语句可能没有执行您认为它正在执行的操作。

关于Java快速排序,从用户输入文件读取到任何数组(待排序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1684215/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com