python归类排序
时间: 2024-12-29 18:23:40 浏览: 7
### Python中的分类排序算法
#### 归并排序(Merge Sort)
归并排序是一种基于分治法的高效稳定排序算法。该算法通过递归方式将列表不断分割成较小子序列直到每个子序列仅含单个元素,随后逐步合并这些有序子序列形成最终完全有序的大序列。
```python
def merge_sort(arr):
if len(arr) > 1:
mid = len(arr) // 2 # 寻找中间位置
L = arr[:mid] # 将数组分为两半
R = arr[mid:]
merge_sort(L) # 对左半边进行递归调用
merge_sort(R) # 对右半边进行递归调用
i = j = k = 0
while i < len(L) and j < len(R): # 合并两个已排序的部分
if L[i] < R[j]:
arr[k] = L[i]
i += 1
else:
arr[k] = R[j]
j += 1
k += 1
while i < len(L): # 检查是否有剩余项
arr[k] = L[i]
i += 1
k += 1
while j < len(R):
arr[k] = R[j]
j += 1
k += 1
arr_example = [64, 34, 25, 12, 22, 11, 90]
merge_sort(arr_example)
print("Sorted array using Merge Sort is:", arr_example)[^1]
```
此代码展示了如何利用Python实现归并排序功能。值得注意的是,在实际应用中,对于大多数内置类型的列表来说,通常推荐使用Python自带的`sorted()`函数或是列表对象自身的`.sort()`方法来进行排序操作,因为它们内部实现了Timsort——一种混合排序算法,其表现优于简单的归并排序,并且具有更好的最坏情况下的时间复杂度O(n log n)以及更少的空间需求。
阅读全文