用python写一个选择排序的代码
时间: 2024-05-06 21:17:39 浏览: 10
下面是一个用 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
```
这个函数接受一个数组作为输入,并返回已排序的数组。它使用嵌套的循环来比较数组中的元素并进行交换,以便将最小的元素移动到前面。
相关问题
使用Python写一个选择排序代码
好的,以下是Python实现的选择排序代码:
def selectionSort(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 = [64, 25, 12, 22, 11]
sorted_arr = selectionSort(arr)
print("排序后的数组:", sorted_arr)
希望这个代码可以帮到你。
用Python写一个快速排序代码
以下是Python实现的快速排序代码:
```python
def quicksort(arr):
if len(arr) <= 1:
return arr
else:
pivot = arr[0]
left = []
right = []
for i in range(1, len(arr)):
if arr[i] < pivot:
left.append(arr[i])
else:
right.append(arr[i])
return quicksort(left) + [pivot] + quicksort(right)
```
快速排序的思路是将一个数组分成两个子数组,其中一个子数组的所有元素都小于另一个子数组的所有元素,然后对这两个子数组递归地进行快速排序。在上述代码中,pivot是选定的基准元素。在一次快速排序中,我们将数组中小于pivot的元素放到左边的子数组中,将大于pivot的元素放到右边的子数组中。最后,我们将这三个数组拼接在一起,返回一个完全排序的数组。
为了实现快速排序的递归过程,我们需要将左右子数组传递给quick排序函数,直到数组的长度小于或等于1。在这种情况下,我们可以直接返回数组,因为它已经被排序。