欢迎访问宙启技术站
智能推送

如何使用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函数,可以方便快捷地进行快速排序,并且支持自定义排序规则。这对于程序员来说是非常方便的,实现起来也非常容易。