这里用的是哪种排序算法



在在线活动中,我必须完成部分完成的代码。它们使用链表数据结构来存储每个元素。时间复杂度为O(n*n)在外部(for)循环中,当node->next!= NULL(即只检查n-1次)。内部(for)循环,有n次检查,直到(ptr变为NULL)

假设有5个元素。而且,给定顺序的元素5 ->3 ->1 ->2 ->4 ->NULL

周期:

1 ->3 ->5 ->2 ->4 ->NULL

1 ->2 ->5 ->3 ->4 ->NULL

1 ->2 ->3 ->5 ->4 ->NULL

1 ->2 ->3 ->4 ->5 ->NULL

元素排序

1 ->2 ->3 ->4 ->5 ->NULL

这里使用的是哪种排序算法?

这是一个选择排序的实例。注意,在第i次迭代之后,列表的前i个元素现在是有序的,并且移动到第i个位置的元素与原来在那里的元素交换了。例如,下面是第一次迭代到第二次迭代的变化:

5 ->3 ->1 ->2 ->4 ->NULL
1 ->3 ->5 ->2 ->4 ->NULL

注意,1(最小的元素)被交换到前面,但其余元素的顺序相同。类似地,在第二次和第三次迭代之间,您将看到如下内容:

1 ->3 ->5 ->2 ->4 ->NULL
1 ->2 ->5 ->3 ->4 ->NULL

这里,第二小的元素2被交换到第二个位置,但其余元素的顺序相同。

我不知道为什么他们选择在这里使用选择排序。有更好的方法来排序链表

希望这对你有帮助!

它看起来像选择排序,首先是最小的,然后是最小的,然后把结果放在第一个后面。

相关内容

  • 没有找到相关文章

最新更新