Algorithm 为什么在选择排序中浪费比较?

Algorithm 为什么在选择排序中浪费比较?,algorithm,sorting,selection-sort,Algorithm,Sorting,Selection Sort,我在一本简而言之的书中读到了关于选择排序的算法。书中出现了以下内容: 选择排序是所有排序算法中最慢的。信息技术 重复执行几乎相同的任务,而不学习任何内容 从一次迭代到下一次迭代。选择最大的元素max, 在A中,进行n-1比较,并选择第二大元素 进行n-1比较-没有多大进步许多这样的比较 是浪费的,因为如果一个元素小于秒,它就不能 可能是最大的元素,因此对 计算最大值。 粗体字是什么意思 有人能用简单的例子解释吗?考虑3,5,2,4,1 最大的元素是5。第二大元素是4 3小于4,因此它不能大于5,

我在一本简而言之的书中读到了关于选择排序的算法。书中出现了以下内容:

选择排序是所有排序算法中最慢的。信息技术 重复执行几乎相同的任务,而不学习任何内容 从一次迭代到下一次迭代。选择最大的元素max, 在A中,进行n-1比较,并选择第二大元素 进行n-1比较-没有多大进步许多这样的比较 是浪费的,因为如果一个元素小于秒,它就不能 可能是最大的元素,因此对 计算最大值。

粗体字是什么意思


有人能用简单的例子解释吗?

考虑
3,5,2,4,1

最大的元素是
5
。第二大元素是
4


3
小于
4
,因此它不能大于
5
,从而检查它是否本质上是一种浪费。

你的书的作者似乎喜欢复杂的长句。不要向他学习;已经有足够多的人知道如何迷惑他们的读者

试图使其更易于理解:

当A有
n个
元素时,从A中选择最大元素需要进行
n-1
比较。不幸的是,排序算法没有重用这些信息

当它再次启动内部循环对其余元素进行排序时,它需要另一个
n-2
比较(一个元素已与上一个循环排序到正确的位置)

由于排序在内部循环的每次运行中只移动一个元素,因此大多数比较都会一次又一次地重复,而不会对结果做任何处理——这只是浪费时间


Wikipedia有一个。

看看最慢的排序算法。有很多排序算法非常慢,比如bogosort或。选择排序是高效的(原因在引文中提到),而不是最慢选择排序在比较小且交换成本大的较小阵列上非常有用。