Q
重复选择排序行为
1
A
回答
0
尽管您在3
中交换的具体问题很容易回答,但更通用的版本并不容易,因为选择类别不是稳定。
经典实施将挑3
第三索引处,因为下一个元件拾取到交换条件是
if (a[i] < a[iMin])
一旦第一3
被交换到位置0,第二个3
在索引5不会被选中。
该条件意味着最早的重复将根据算法当前通过之前的排列来选择。不过,这种安排可能与元素的初始安排不一样。
只要进一步向下复制选择过程,就不能保证,因为较小的数字可以在它们之前交换。
例如,在此初始排列
[3, 3, 1]
的3
索引零将被最后拾取,因为在第一次迭代将其移动一路到数组的末尾。
0
它取决于实施。 但是,通常情况下,循环将开始从左到右扫描并将获得第一个3
。
但我怎么说thare不是一个标准。
这是根据本Wikipedia一个可能的实现:
procedure SelectionSort(a: list to sorts);
for i = 1 to n - 1
posmin ← i
for j = (i + 1) to n
if a[j] < a[posmin]
posmin ← j
tmp ← a[i]
a[i] ← a[posmin]
a[posmin] ← tmp
相关问题
- 1. 简单选择重复元素排序?
- 2. 选择排序的重复问题
- 3. 选择重复行
- 4. 选择重复行
- 5. 在MySQL中选择最重复的值并进行排序
- 6. 按条件选择行并包括重复项排序
- 7. 根据重复次数选择行,按字母顺序排列
- 8. 为重复的ID号码排序行
- 9. Xcode 4中的“为选择排序行”
- 10. 选择不重复的行
- 11. R选择重复的行
- 12. 选择不进行重复
- 13. JTable排序 - 选择一行
- 14. 重复选择
- 15. 选择重复
- 16. 如何优化重复的MySQL排序选择
- 17. 选择排序不会捕获重复的数字
- 18. 从重复的行中选择一行
- 19. 在重复行之间进行选择
- 20. 行排序后在JTable中选择行
- 21. 重写排序行为
- 22. 重复和排序
- 23. 重复jQuery选择
- 24. 只选择重复
- 25. ListView重复选择
- 26. Python选择排序
- 27. 选择排序 - arrayLists
- 28. 选择排序C++?
- 29. Java选择排序
- 30. 选择排序Java