【发布时间】:2019-12-03 16:49:15
【问题描述】:
我正在尝试在 Linked List 上的 C# 中实现桶排序算法,但我得到了正确的结果。此函数应将 List 和 Node 作为参数,然后以正确的升序插入该节点。 我有一个列表 [4, 7, 12, 15],我希望以升序插入数据为 20 的新节点,例如此列表变为 [4,7,12,15,20]。但结果我得到此列表[4,7,12,20,15] 请帮助我,其中有什么问题。我猜while循环里面有一些问题。此函数调用的所有其他函数都完美无缺
static public void InsertionSort(LinkedList list, Node s)
{
int data = s.getData();
if (list.start.getNext() == null)
list.InsertAtEnd(data);
else
{
int key = 0;
Node temp = list.start;
while (temp.getNext() != null)
{
temp = temp.getNext();
if (data >= temp.getData())
key++;
}
list.InsertAt(key, data);
}
}
派生函数(主函数):
LinkedList list = new LinkedList();
int[] array = { 4, 7, 12, 15 };
for (int i = 0; i < array.Length; i++)
list.InsertAtEnd(array[i]);
System.Console.WriteLine("Before Insertion");
list.Display();
Node n = new Node(20);
InsertionSort(list, n);
System.Console.WriteLine("After Insertion");
list.Display();
【问题讨论】:
-
请...而不是链接到您的代码图像(这确实不能帮助我们帮助您),只需将您的代码复制并粘贴到您的问题中即可。
-
好多了!谢谢
-
谢谢,我已添加代码,请查看
-
您是否遇到错误或异常?你能在这里添加一些日志记录吗?
-
下一步:当你说:
there is some problem In Insertion Sort Function时,请告诉我们问题出在哪里。some problem对我们没有帮助。如果有错误消息,请向我们显示错误。或者,如果代码运行没有错误,则向我们展示结果,以及您想要的结果。
标签: c# linked-list insertion-sort bucket-sort