3.6 链表的选择排序
该选择排序算法背后的基本思想是:搜寻输入链表中所包含的最大项,然后将其添加到一个不断增长的有序链表的前面。
下面的伪代码显示了选择排序算法的单向链表实现方法(默认其中的项是整数类型):
如果将寻找输入链表中最大单元格的代码抽取出来,作为一个新的算法,然后在原有算法中调用该新算法,则可以使得上面的算法变得更加简化。
若输入链表包含K个项,则寻找链表中的最大项需要花费K步。在算法进行的过程中,输入链表将会缩小规模。因此,如果它最初拥有N个项,步骤的总数是N+(N-1)+(N-2)+…+2+1=N×(N+1)÷2=O(N2),这和插入排序的运行时间相同。
时间: 2024-09-27 00:56:10