gpt4 book ai didi

java - 通过选择进行排序

转载 作者:行者123 更新时间:2023-12-01 23:01:15 26 4
gpt4 key购买 nike

我刚刚开始学习排序,我的目前正在处理选择。对于我的作业,我必须按升序对数字列表进行排序,并显示数组的外观以及当前的比较数量,我们必须在纸上完成它。

数字是:

90, 8, 7, 56, 123, 235, 9, 1, 653.

到目前为止,这就是我所拥有的(排序列表以粗体显示):

90|8|7|56|123|235|9|1|653



# of comparisons: 0

---

**1**|8|7|56|123|235|9|90|653

# of comparisons: 1

---

**1**|**7**|8|56|123|235|9|90|653

# of comparisons: 2
<小时/>

这基本上就是我有问题的地方。因为 8 已经在正确的位置,是否还会进行比较?或者它会直接进入下一个值吗?那么,会是:

---

**1**|**7**|**8**|56|123|235|9|90|653

# of comparisons: 3

---

or would it be:

---

**1**|**7**|**8**|**9**|123|235|56|90|653

# of comparisons: 3

---

我相信前者是正确的,但我只是想请你们确保我正确理解了这一点。

最佳答案

如果您了解如何选择列表中最小的元素,将会有所帮助。执行此操作的有效方法是首先假设第一个未排序元素是最小的,然后迭代剩余的未排序元素来测试该假设。

90, 8, 7, 56, 123, 235, 9, 1, 653

如果这是您的列表,那么您首先假设 90 是最小的。然后您将 90 与 8 进行比较。8 小于 90,因此您将假设更新为 8 是最小的。这样就进行了 1 次比较。您比较 8 和 7。7 更小,所以现在您的假设是 7 是最小的。 2 比较。您将 7 与 56 进行比较。7 较小,因此您的假设保持不变。 3 比较。需要进行 8 次比较才能浏览列表并确定 1 是最小的。

现在您知道 1 是最小的,您可以将它与列表中的第一个元素交换。

1, 8, 7, 56, 123, 235, 9, 90, 653

现在 1 位于正确的位置,您不必再担心它。现在您需要对以下列表进行排序。

8, 7, 56, 123, 235, 9, 90, 653

经过 7 次比较,您确定 7 是列表中的最小元素。您将其与第一个元素交换。

7, 8, 56, 123, 235, 9, 90, 653

现在您需要对以下列表进行排序。

8, 56, 123, 235, 9, 90, 653

请记住,即使 8 已经位于正确的排序位置,您也不知道 8 是列表中的最小元素,除非您将它与所有其他项目进行比较位于未排序列表中。 因此,您仍必须进行 6 次比较才能确定 8 是最小元素。但是,由于 8 是列表中的第一个元素,因此不需要交换它。您可以将其保留在原来的位置。

8, 56, 123, 235, 9, 90, 653

现在您需要对以下列表进行排序。

56, 123, 235, 9, 90, 653

等等。

关于java - 通过选择进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23353965/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com