选择排序17 Mar 2025 | 4 分钟阅读 选择排序通过对每次遍历只进行一次交换来改进冒泡排序。为了做到这一点,选择排序在遍历过程中寻找最大值,并在遍历结束后将其放置在最佳位置。与冒泡排序类似,第一次遍历后,最大项位于正确的位置。第二次遍历后,下一个最大项就被设置好了。这个过程持续进行,需要 n-1 次遍历才能对 n 个项目进行排序,因为最后一个项目必须在 (n-1) 次遍历后设置好。 算法:选择排序 (A)选择排序的工作原理
![]() 1st 迭代 设置最小值 = 7
![]() 因为,a0 > a1,设置最小值 = 4。
![]() 因为,a1 > a2,设置最小值 = 3。
![]() 因为,a2 < a3,设置最小值= 3。
![]() 因为,a2 < a4,设置最小值 =3。 由于 3 是最小元素,因此我们将交换 a0 和 a2。 ![]() 2nd 迭代 设置最小值 = 4
![]() 因为,a1 < a2,设置最小值 = 4。
![]() 因为,A[1] < A[3],设置最小值 = 4。
![]() 同样,a1 < a4,设置最小值 = 4。 由于最小值已经放置在正确的位置,因此不会进行交换。 ![]() 3rd 迭代 设置最小值 = 7
![]() 因为,a2 > a3,设置最小值 = 6。
![]() 因为,a3 > a4,设置最小值 = 5。 由于 5 是剩余未排序元素中最小的元素,因此我们将交换 7 和 5。 ![]() 4th 迭代 设置最小值 = 6
![]() 因为 a3 < a4,设置最小值 = 6。 由于最小值已经放置在正确的位置,因此不会进行交换。 ![]() 选择排序的复杂度分析输入: 给定 n 个输入元素。 输出: 对列表进行排序所需的步骤数。 逻辑: 如果我们得到 n 个元素,那么在第一遍中,它将进行 n-1 次比较;在第二遍中,它将进行 n-2 次比较;在第三遍中,它将进行 n-3 次比较,依此类推。因此,可以通过以下方式找到比较的总数; ![]() 因此,选择排序算法包含 O(n2) 的时间复杂度和 O(1) 的空间复杂度,因为它需要一些额外的内存空间来交换 temp 变量。 时间复杂度
在选择排序算法中,时间复杂度在所有三种情况下都为 O(n2)。这是因为在每个步骤中,我们都需要找到 最小值 元素,以便将其放置在正确的位置。一旦我们追踪了整个数组,我们就会得到我们的最小元素。 下一主题DAA 插入排序 |
我们请求您订阅我们的新闻通讯以获取最新更新。