用python表示选择排序一组数
时间: 2023-07-01 19:05:22 浏览: 40
下面是用 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` 是待排序的数组,`n` 是数组的长度。使用两层循环,外层循环从数组的第一个元素开始遍历,内层循环从外层循环的下一个元素开始遍历,找到最小的元素的下标,然后交换最小元素和当前元素的位置。最后返回排序后的数组。
相关问题
Python对一组数进行冒泡排序
下面是使用冒泡排序算法对一组数进行排序的Python代码示例:
```python
def bubble_sort(arr):
n = len(arr)
for i in range(n):
# 每次循环将最大的数冒泡到末尾
for j in range(0, n - i - 1):
if arr[j] > arr[j + 1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
# 测试示例
arr = [64, 34, 25, 12, 22, 11, 90]
bubble_sort(arr)
print("排序后的数组:", arr)
```
以上代码中,`bubble_sort`函数实现了冒泡排序算法。它通过不断比较相邻的两个数,将较大的数往后移动,从而逐步将最大的数冒泡到末尾。最外层的循环控制总共进行的比较轮数,内层的循环用于进行相邻数的比较和交换。最后,输出排序后的数组。在上面的示例中,输出结果是 `[11, 12, 22, 25, 34, 64, 90]`。
python分治法一组数排序
分治法可以用来解决一些排序问题,例如归并排序。以下是使用分治法实现归并排序的 Python 代码:
```
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr) // 2
left = arr[:mid]
right = arr[mid:]
left = merge_sort(left)
right = merge_sort(right)
return merge(left, right)
def merge(left, right):
result = []
i = 0
j = 0
while i < len(left) and j < len(right):
if left[i] < right[j]:
result.append(left[i])
i += 1
else:
result.append(right[j])
j += 1
result += left[i:]
result += right[j:]
return result
```
在这个代码中,`merge_sort` 函数用于将数组递归划分为子数组并对其进行排序。如果数组中只有一个元素或者为空,则直接返回它本身。否则,将数组分为两半并对每个子数组进行递归排序。最后,使用 `merge` 函数将两个排好序的子数组合并为一个已排好序的数组。
`merge` 函数用于将两个已排好序的子数组合并为一个已排好序的数组。它使用两个指针 `i` 和 `j` 分别追踪左右两个子数组中的元素,并将它们逐个比较,将较小的元素添加到结果数组中。最后,将剩余的元素添加到结果数组中。
你可以使用以下代码测试 `merge_sort` 函数:
```
arr = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
print(merge_sort(arr))
```
输出结果应为:
```
[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
```