私はJavaには比較的新しいので、何かを絶えず行う方法を調べなければなりません。私は、ヒープソート、マージソートなどのよく知られたソートの分析を含むプロジェクトに取り組んでいます。さまざまな配列をそれぞれ独自の.txtファイルに生成するコードを書きました。ここにコードの一部があります:Javaは複数のファイルから整数配列を読み込みます
import java.io.*;
import java.util.Arrays;
import java.util.Collections;
public class ArrayBuilder {
public static void main(String[] args) throws IOException {
for(int i = 2; i < 7; i++) {
int aLength = (int)Math.pow(10, i);
buildAscendingArray(aLength);
buildDescendingArray(aLength);
buildRandomArray(aLength);
}
}
public static void buildAscendingArray(int arrayLength) throws IOException {
File file = new File("arrays_" + arrayLength + "A.txt");
PrintWriter printWriter = new PrintWriter(file);
int[] array = new int[arrayLength];
for(int i = 0; i < array.length; i++) {
array[i] = i + 1;
}
printWriter.println(Arrays.toString(array));
printWriter.close();
}
私は多かれ少なかれ同じであるため、部屋を節約しようとすると、ランダムと降順の方法は含まれていませんでした。だから...
私はすでにすべての種類のコード化があります。整数配列を読み込む方法を理解しようとしていますので、別の並べ替えを実行できます。また、System.nanoTime()を追加して、各ソートを実行するのにかかる時間を計るようにしています。そのため、さまざまな入力を比較することができます。これを各ソートのメソッドに追加する必要があるかどうか、またはコールで実装できるかどうかはわかりません。 System.nanoTime(heapsort(array)))?
最終的には、.txtファイルを使用可能な配列にして各ソートを渡すための助けが必要です。私はすべてのテキストファイルを最初の場所に出力し、正確に同じ配列が各ソートを実行するようにします。
私はScannerに多少精通していますが、FileReadやBufferedReader、あるいはその他の方法についても読んでいます。私は、この状況で何が最もうまくいくのか、それを実装する最良の方法を知るには十分な経験はありません。ヘルプは非常に高く評価されます。
なぜ昇順と降順の配列を保存したいですか?とにかくそのロジックが毎回同じ配列を生成するのではないでしょうか? –
本当にテキストファイルが必要なのですか?ファイルストレージが必要な場合は、配列をそのままファイルに書き込んで、ObjectOutputStreamとObjectInputStreamを使用して直接読み取ることができます。 –
これは、最も効率的なやり方であるかどうかにかかわらず、私はすでにテキストファイルを持っていますが、それは無関係です。私は、どのように進めるべきかについての助けを求めています。何かあれば、私の考えでは、プログラム全体のさまざまな側面を分けるという点で役立ちます。 – TheDubiousDubber