如何使用Python内置函数来快速排序
发布时间:2023-06-20 05:41:32
快速排序是一种分治的排序算法,它的核心思想是选定一个基准值,通过比较其他数和基准值的大小关系把数据分为左右两个子数组,在保证左边子数组所有元素小于等于基准值,右边子数组所有元素大于等于基准值的基础上,递归地对左右两个子数组进行快速排序,最终实现整个序列的排序。快速排序是一种高效的排序算法,时间复杂度为O(nlogn),在实际应用中被广泛采用。
Python内置了一个sort函数,可以方便快捷地对列表进行排序。sort函数默认使用快速排序算法,因此直接调用sort函数就可以快速排序一个列表:
list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5] list.sort() print(list)
输出结果:
[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
上面的代码中,先定义一个列表list,包含一些随机数。然后直接调用sort函数,对列表进行排序。最后输出排序后的列表。
sort函数还支持传入一个key参数,用于指定排序比较时所用的关键字函数。例如,可以指定按照元素的绝对值大小进行排序:
list = [3, 1, 4, -1, 5, -9, 2, -6, 5, 3, 5] list.sort(key=abs) print(list)
输出结果:
[1, 2, 3, 3, 4, 5, 5, -1, -5, -6, -9]
上面的代码中,key参数指定为abs函数,这样sort函数会按照元素的绝对值大小进行排序。因为abs函数返回的是数值的绝对值,所以列表中的负数也会被正确排序。
除了sort函数,Python还内置了一个sorted函数,通过传入一个可迭代对象并指定排序规则,可以返回一个排好序的新列表,而不是在原列表上进行排序。例如:
list = [3, 1, 4, -1, 5, -9, 2, -6, 5, 3, 5] sorted_list = sorted(list, key=abs) print(sorted_list)
输出结果:
[1, 2, 3, 3, 4, 5, 5, -1, -5, -6, -9]
上面的代码中,使用sorted函数对列表进行排序。sorted函数和sort函数类似,只不过它会返回一个排好序的新列表,而不是在原列表上进行排序。
总之,利用Python内置的sort和sorted函数,可以方便快捷地进行快速排序,并且支持自定义排序规则。这对于程序员来说是非常方便的,实现起来也非常容易。
