gpt4 book ai didi

JAVA - 按降序对链表进行排序

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:53:07 25 4
gpt4 key购买 nike

我尝试编写一个对链表进行排序的方法。这是对我的 Java 培训。

该方法应该获取一个包含值的链表,并使用选择排序对其进行排序。 不是通常的选择排序,而是找到最大数并将其放在链表开头的选择排序。直到列表被排序。

我试着跟随调试器,但是,我真的不明白我做错了什么。

这就是我累了:

public IntList selectionSort()
{
IntNode tempMax = _head;
IntNode current = _head;
IntNode fromHere = null;
IntNode toHere = _head;
IntNode prev = null;
while(toHere != null)
{
current = toHere;
tempMax = toHere;
while (current != null)
{
if (current.getNext() != null && current.getNext().getValue() > tempMax.getValue())
{
prev = current;
tempMax = current.getNext();
current = current.getNext();
}
else current = current.getNext();
}
prev.setNext(prev.getNext().getNext());
tempMax.setNext(toHere);
if (fromHere == null)
_head = tempMax;
else fromHere.setNext(tempMax);
fromHere = tempMax;
toHere = fromHere.getNext();
}
return this;
}

enter image description here

最佳答案

一些提示:

  • 如果你想要最小的数字那么current.getNext().getValue() > tempMax.getValue()应该有一个 >而不是 <

  • 如果第一个元素已经是最小值,您的代码也会失败,因为您试图对 null 做些什么。

  • 我也可以在这里看到重复的代码,current = current.getNext() .指针操作通常很难编写代码,遵循“不要重复自己”的原则编写更清晰的代码可能会帮助您发现错误!

  • 如果您打印编译器/运行时错误消息,它将帮助这里的人帮助您

关于JAVA - 按降序对链表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9175973/

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