gpt4 book ai didi

java - 我的 SelectionSort 方法不起作用。为什么?

转载 作者:太空宇宙 更新时间:2023-11-04 08:38:40 25 4
gpt4 key购买 nike

我正在尝试在我自己编写的双向链表版本中使用选择排序算法。对于这个问题,我们可以假设除了我发布的代码之外,其他地方没有错误(至少没有与问题相关的错误)。我已经做了很多测试。

这是我的方法:

public void selectionSort(){

ListItem front = head;
ListItem current;
T currentLowest;
T potentialLowest;
int lowestIndex = 0;
for (int a = 0; a<count-1; a++){
System.out.println("a: "+a);
currentLowest = (T) front.content;
front = front.next;
current = front.next;
for(int i = a+1; i<count; i++){
System.out.println("i: "+i);
**(29)** potentialLowest = (T) current.content;
if (potentialLowest.compareTo(currentLowest)==-1)
{
currentLowest = (T) current.content;
lowestIndex = i;
}
if(current.next == null)break;

current = current.next;
}
System.out.println("swapped"+a+","+lowestIndex);
swap(a, lowestIndex);
}

}

它正在对 100 个整数的列表进行排序。这是我在第 29 行收到空指针之前的最后一位输出(已标记)。

交换95,97

答:96我:97我:98

交换96,97

答:97我:98

交换97,97

答:98我:99(空指针)

我之前就做过这个工作,但它的优化非常糟糕。做了一些改变后,我坚持了下来。有什么想法吗?

感谢您的宝贵时间。

最佳答案

您正在尝试访问 null 元素的内容。当您位于最后一个元素时,当您将其设置为下一个时,“当前”将为空。

我想我有点太累了,无法提供修复程序,但是您应该能够将旧的(工作)代码与它进行比较并找到修复程序。

关于java - 我的 SelectionSort 方法不起作用。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5828512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com