我有一个链接列表,其中包含5个对象,每个对象的工资如下:
999、999、9009、700、9000
我需要根据这些薪金手动(没有任何内置ava函数)对链接列表进行排序,这是我对sort方法的实现:
public static void sortBySalary() {
tmp = head;
int i = linkLength();
System.out.println(i);
head = null;
Employee maxSalary = new Employee();
int max = 0;
Employee current = tmp;
for (int b = 0; b < i; b++) {
current = tmp;
max = 0;
for (int c = 0; c < i; c++) {
if(head == null && max < current.salary) {
maxSalary = current;
max = current.salary;
}
else if( max < current.salary && current.salary < head.salary) {
maxSalary = current;
max = current.salary;
}
System.out.println(current.salary);
current = current.next;
}
maxSalary.next = null;
insertFirst(maxSalary);
}
}
我得到的错误是在第一个循环的第二次迭代之后,当薪水达到9009时,列表似乎指向空。它经过900、900、9009然后指向空。
我也愿意接受不同的方法。