python实现一个选择排序
时间: 2023-07-02 07:12:18 浏览: 46
以下是Python实现选择排序的代码:
```python
def selection_sort(arr):
for i in range(len(arr)):
min_index = i
for j in range(i+1, len(arr)):
if arr[j] < arr[min_index]:
min_index = j
arr[i], arr[min_index] = arr[min_index], arr[i]
return arr
```
该代码首先遍历整个数组,以序号i为基准,从i+1开始向后遍历整个未排序序列,找到最小的元素的索引min_index,然后将arr[i]和arr[min_index]交换位置。最后返回排序后的数组arr。
相关问题
用python实现一个快速排序
以下是用Python实现快速排序的代码:
```python
def quick_sort(arr):
if len(arr) <= 1:
return arr
else:
pivot = arr[0]
left = []
right = []
for i in arr[1:]:
if i < pivot:
left.append(i)
else:
right.append(i)
return quick_sort(left) + [pivot] + quick_sort(right)
```
这个实现使用了递归的方式,首先判断列表长度是否小于等于1,如果是则直接返回该列表,否则选择第一个元素作为基准值,将列表中剩余的元素分别与基准值比较,小于基准值的放在左边列表中,大于等于基准值的放在右边列表中,然后对左右两个列表分别进行递归排序,最后将左、基准、右三个列表合并起来即可得到排序后的结果。
用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`。完成内层循环后,将最小元素与已排序部分的末尾交换即可。