【发布时间】:2017-12-10 18:58:04
【问题描述】:
我的最终论文样本中的一个问题是:如果大小为 n 的输入已经排序,选择排序算法会进行多少次比较和交换?展示你的工作是如何得出这些数字的。假设仅在必要时进行交换。 https://imgur.com/a/bemaL
我对@987654324@ 的逻辑是这样的
1 与 3 4 5 7 进行比较,因此 n-1 次比较和 0 次交换
3 与 4 5 7 进行比较,因此 n-2 次比较和 0 次交换
4 与 5 7 相比,因此 n-3 比较和 0 次交换
5 与 7 进行比较,因此 n-4 次比较和 0 次交换。
所以比较次数为n-1 + n-2 + n-3 + n-4。并且交换次数为零。
我的逻辑正确吗?如果是这样,对于任何 n 个长度的元素,我该如何回答这个问题?
【问题讨论】:
-
您的逻辑对于选择排序是正确的。对于一般公式,
(n-1) + (n-2) + (n-3) ... + (n-n+1)等于(n*(n-1))/2。详情请见en.wikipedia.org/wiki/Selection_sort#Complexity。
标签: java algorithm sorting insertion-sort