在Python中,对列表进行快速排序可以通过以下方法实现:
1. 使用内置的`sorted()`函数:
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5]
sorted_list = sorted(my_list)
print(sorted_list) 输出:[1, 1, 2, 3, 4, 5, 5, 6, 9]
2. 使用列表对象的`sort()`方法:
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5]
my_list.sort()
print(my_list) 输出:[1, 1, 2, 3, 4, 5, 5, 6, 9]
3. 快速排序算法实现:
def quick_sort(alist, first, last):
if first >= last:
return
mid_value = alist[first]
low = first
high = last
while low < high:
while low < high and alist[high] >= mid_value:
high -= 1
alist[low] = alist[high]
while low < high and alist[low] <= mid_value:
low += 1
alist[high] = alist[low]
alist[low] = mid_value
quick_sort(alist, first, low - 1)
quick_sort(alist, low + 1, last)
示例
num_list = [2, 4, 9, 2, 5, 123, 8]
quick_sort(num_list, 0, len(num_list) - 1)
print(num_list) 输出:[2, 2, 4, 5, 8, 9, 123]
以上方法中,`sorted()`函数会返回一个新的排序后的列表,而`sort()`方法会直接修改原列表。快速排序算法是一种高效的排序算法,其平均时间复杂度为O(n log n)。