JAVA /排序将Collection.sort切换为二进制插入排序

时间:2018-11-29 19:40:33

标签: java algorithm sorting

我正在编写一个程序,该程序从文本文件中读取学生数据,并根据其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;
    }

但是我做的很失败。我想知道任何建议。预先感谢

0 个答案:

没有答案