元素的组合排序

例题1:
li_num1=[4,5,2,7]
li_num2=[3,6]
li_num2.extend(li_num1)
li_num2.sort(reverse=True)
print(li_num2)

C:\DataSoft\python38\python.exe C:/Users/Administrator/PycharmProjects/Test/排列.py
[7, 6, 5, 4, 3, 2]

Process finished with exit code 0
 

Python中有很多组合排序算法,下面列举几种常见的: 1. **冒泡排序(Bubble Sort)**: 这是最简单的排序算法之一,它反复交换相邻的未按序元素,直到序列完全有序。虽然简单,但对于大型数据集效率较低。 ```python def bubble_sort(lst): n = len(lst) for i in range(n): for j in range(0, n-i-1): if lst[j] > lst[j+1]: lst[j], lst[j+1] = lst[j+1], lst[j] ``` 2. **插入排序(Insertion Sort)**: 比较每个元素,将其插入到已排序的部分的适当位置。适用于小型数组和基本就有序的数据。 ```python def insertion_sort(lst): for i in range(1, len(lst)): key = lst[i] j = i - 1 while j >= 0 and key < lst[j]: lst[j + 1] = lst[j] j -= 1 lst[j + 1] = key ``` 3. **选择排序(Selection Sort)**: 每次从未排序元素中选出最小(或最大)的元素放到已排序部分的末尾。 ```python def selection_sort(lst): for i in range(len(lst)): min_idx = i for j in range(i+1, len(lst)): if lst[min_idx] > lst[j]: min_idx = j lst[i], lst[min_idx] = lst[min_idx], lst[i] ``` 4. **快速排序(Quick Sort)**: 使用分治策略,选取一个基准值,将小于它的放在左边,大于它的放在右边,然后对两边递归地进行排序。这是一种高效的通用排序方法。 ```python def quick_sort(lst, low=None, high=None): if low is None: low = 0 if high is None: high = len(lst) - 1 if low < high: pivot_index = partition(lst, low, high) quick_sort(lst, low, pivot_index - 1) quick_sort(lst, pivot_index + 1, high) def partition(lst, low, high): pivot = lst[high] i = low - 1 for j in range(low, high): if lst[j] <= pivot: i += 1 lst[i], lst[j] = lst[j], lst[i] lst[i + 1], lst[high] = lst[high], lst[i + 1] return i + 1 ``` 以上是一些基础的排序算法实现,Python标准库的`sorted()`函数或内置列表方法`list.sort()`通常会使用更复杂、高效且稳定的排序算法,如Timsort。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值