我正在编写一个程序,该程序从文本文件中读取学生数据,并根据其ID对学生进行排序。我在用
Collections.sort(studentRecords, new idCompare());
创建一个新对象以在另一个Java文件中使用。
class idCompare implements Comparator<Student> {
@Override
public int compare(Student s1, Student s2) {
return s2.id - s1.id;
}
}
效果很好。我想将其切换为如下所示的二进制插入类型:
for (int i = 1; i < array.length; i++)
{
int id = array[i];
// Find location to insert using binary search
int j = Math.abs(Arrays.binarySearch(array, 0, i, id) + 1);
//Shifting array to one location right
System.arraycopy(array, j, array, j+1, i-j);
//Placing element at its correct location
array[j] = id;
}
但是我做的很失败。我想知道任何建议。预先感谢