我需要创建一个执行基数排序的方法,该方法使用按位运算符(>>、<<、&、|)从值中检索单个位。
该文件看起来像这样:
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
这是我目前导入该文件的方法,该文件正在运行。我的所有其他方法都在工作,除了基数排序,我不确定从哪里开始按位运算。
我有排序如何工作的概念,但实施它似乎更具挑战性。
问候,
麦克风