用Python写一个数组排序的算法
时间: 2023-03-10 21:54:38 浏览: 108
可以使用Python的内置函数sorted()来对数组进行排序,示例代码如下:arr = [3,6,1,9,4]
sorted_arr = sorted(arr)
print(sorted_arr) # 输出 [1, 3, 4, 6, 9]
相关问题
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]
return arr
# 示例用法
arr = [64, 34, 25, 12, 22, 11, 90]
sorted_arr = bubble_sort(arr)
print("Sorted array is:", sorted_arr)
```
使用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_sort`函数是归并排序的主体部分,它将一个未排序的数组作为输入,并返回一个已排序的数组。首先,如果输入数组的长度小于等于1,则直接返回该数组。否则,我们找到数组的中间位置,并将其分成左右两个子数组。然后再递归调用`merge_sort`函数来对左右两个子数组进行排序。最后,我们将左右两个有序的子数组合并成一个有序的数组并返回。
`merge`函数用于将两个已排序的子数组合并成一个更大的已排序的数组。它使用两个指针`i`和`j`来分别指向左右两个子数组的第一个元素,并比较它们的大小。如果左子数组的元素小于等于右子数组的元素,则将左子数组的元素添加到结果数组中,并递增`i`指针;否则将右子数组的元素添加到结果数组中,并递增`j`指针。最后将剩余的元素追加到结果数组中。
最后,我们可以测试一下这个归并排序算法:
```
arr = [2, 1, 4, 3, 6, 5]
sorted_arr = merge_sort(arr)
print(sorted_arr)
```
输出结果为:
```
[1, 2, 3, 4, 5, 6]
```
可以看到,这个归并排序算法成功地将输入的未排序数组排序成了一个有序的数组。
相关推荐
![](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)