我正在阅读 Algorithms Nutshell 一书中的选择排序。书中出现以下内容:
选择排序是所有排序算法中最慢的。它 无需学习任何东西即可重复执行几乎相同的任 从一次迭代到下一次。选择最大元素max, 在A中进行n-1次比较,并选择第二大元素 进行n-1次比较 - 进展不大! 其中许多比较 是浪费,因为如果一个元素小于秒,它不能 可能是最大的元素,因此没有影响 计算最大
粗体文字是什么意思?
有人可以用简单的例子来解释吗?
答案 0 :(得分:1)
你的书的作者似乎喜欢复杂的长句。不要向他学习;已经有足够的人知道如何混淆他们的读者。
试图让它更容易理解:
当A具有n-1
元素时,从A中选择最大元素需要进行n
比较。不幸的是,排序算法不会重复使用任何此类信息。
当它再次启动内部循环以对其余元素进行排序时,它需要进行另一次n-2
比较(一个元素已经使用最后一个循环排序到正确的位置)。
由于排序仅在内循环的每次运行中移动一个元素,因此大多数比较会一遍又一遍地重复,而不会对结果做任何事情 - 它们只是浪费时间。
答案 1 :(得分:0)
考虑3,5,2,4,1
。
最大的元素是5
。第二大元素是4
。
3
小于4
,因此不能大于5
,因此检查它是否实际上是浪费。