用python写选择排序
时间: 2023-10-16 12:08:55 浏览: 20
以下是用Python编写的选择排序算法:
```python
def selection_sort(arr):
n = len(arr)
for i in range(n):
min_index = i
for j in range(i+1, n):
if arr[j] < arr[min_index]:
min_index = j
arr[i], arr[min_index] = arr[min_index], arr[i]
return arr
```
该算法的时间复杂度为O(n^2),其中n是数组的长度。在每一次循环中,它会找到未排序部分中的最小元素,并将其放置在已排序部分的末尾。
相关问题
用python写一个选择排序
好的,以下是Python实现的选择排序:
```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[j] < arr[min_idx]:
min_idx = j
arr[i], arr[min_idx] = arr[min_idx], arr[i]
return arr
```
该函数接受一个列表 `arr`,并返回一个按升序排列的新列表。选择排序的思路是,在每次循环中,找到未排序部分中的最小元素,并将其放到已排序部分的末尾。具体实现中,我们用 `min_idx` 记录未排序部分中的最小元素的下标,然后在内层循环中依次比较每个元素,更新 `min_idx`。完成内层循环后,将最小元素与已排序部分的末尾交换即可。
使用python 和选择排序
以下是使用Python实现选择排序的代码和解释:
```python
def selection_sort(array):
for i in range(len(array)-1):
min_index = i
for j in range(i+1, len(array)):
if array[j] < array[min_index]:
min_index = j
if min_index != i:
array[i], array[min_index] = array[min_index], array[i]
return array
if __name__ == '__main__':
array = [10, 17, 50, 7, 30, 24, 27, 45, 15, 5, 36, 21]
print(selection_sort(array))
```
这段代码实现了选择排序算法,首先定义了一个名为`selection_sort`的函数,该函数接受一个列表作为参数。在函数内部,使用两个嵌套的循环来实现选择排序。外层循环从0到n-1遍历列表,内层循环从i+1到n遍历列表,找到最小值的下标。如果最小值的下标不是i,则交换i和最小值的位置。最后返回排序后的列表。