【发布时间】:2013-05-07 03:06:33
【问题描述】:
嘿,我一直在尝试让插入排序方法为我正在学习的类工作,我们被告知使用插入排序对整数的链表进行排序,而不使用 Java 中已经存在的链表类图书馆。
这是我的内部 Node 类,因为我还没有完全掌握循环双向链表的概念,所以我只将其设为单链表
public class IntNode
{
public int value;
public IntNode next;
}
这是我在 IntList 类中的插入排序方法
public IntList Insertion()
{
IntNode current = head;
while(current != null)
{
for(IntNode next = current; next.next != null; next = next.next)
{
if(next.value <= next.next.value)
{
int temp = next.value;
next.value = next.next.value;
next.next.value = temp;
}
}
current = current.next;
}
return this;
}
我遇到的问题是它根本没有排序它通过循环运行良好但根本没有操纵列表中的值有人可以向我解释我做错了什么我是初学者。
【问题讨论】:
-
向我们展示一些结果样本
-
这看起来不像insertion sort。此外,您的
if测试似乎倒退了;你想按降序排序吗? -
他们告诉我们,无论是降序还是升序,我认为这很奇怪。在列表生成中,我向 main 方法传递了一个整数,例如 5,它将生成 0 到 5 之间的 5 个数字。列表与传入的相同。
标签: java linked-list insertion-sort