ビットごとの演算子 (>>、<<、&、|) を使用して値から個々のビットを取得する基数ソートを行うメソッドを作成する必要があります。
ファイルは次のようになります。
0100
1
0011
110
0010
101
0001
11
0000
現在、ファイルを読み込んでいます(サイズは不明です)。最初は整数として読み込んでいましたが、先頭のゼロを切り捨てていることに気付きました。そのため、それらを String[] に格納しました。
public static void readFile(String fileName) throws FileNotFoundException, IOException
{
File file = new File(fileName);
byte[] bytes = new byte[(int) file.length()];
try (FileInputStream fis = new FileInputStream(file))
{
fis.read(bytes);
}
String[] value = new String(bytes).split("\\s+");
numbers = new String[value.length];
System.arraycopy(value, 0, numbers, 0, value.length);
} // end of import file
それが、機能しているそのファイルをインポートする私の現在の方法です。ビット単位の操作に関してどこから始めればよいかわからない基数ソートを除いて、他のすべての方法が機能しています。
ソートがどのように機能するかという概念はありますが、実装するのは少し難しいようです。
よろしく、
マイク