用Python实现选择排序
时间: 2023-07-20 13:13:03 浏览: 42
好的,以下是用 Python 实现选择排序的代码:
```
def selection_sort(arr):
n = len(arr)
# 遍历数组
for i in range(n):
# 找到数组中最小的元素
min_idx = i
for j in range(i+1, n):
if arr[min_idx] > arr[j]:
min_idx = j
# 将最小元素交换到数组的前面
arr[i], arr[min_idx] = arr[min_idx], arr[i]
return arr
```
这个函数接收一个列表 `arr`,并返回一个新的排好序的列表。
在函数中,我们首先计算出列表的长度 `n`。然后,我们遍历数组,每次找到数组中最小的元素,并将其与数组的第一个元素交换。这样,我们就将最小的元素放到了数组的最前面。
在找到最小的元素时,我们使用了一个内层循环,从当前元素的下一个位置开始遍历数组,找到最小的元素的索引 `min_idx`。我们将 `min_idx` 初始化为当前元素的索引,然后从下一个位置开始遍历数组,如果发现一个比当前元素更小的元素,就将 `min_idx` 更新为该元素的索引。这样,当内层循环结束时,`min_idx` 就指向了数组中最小的元素。
最后,我们将第一个元素和最小元素交换。这样,最小的元素就被放到了数组的最前面。然后,我们继续遍历数组,找到第二小的元素,并将其与数组的第二个元素交换。以此类推,直到整个数组都排好序。
注意,选择排序的时间复杂度为 O(n^2),因此它不适用于大型数据集。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)