Python快速排序算法这么实现

75次阅读
没有评论

共计 754 个字符,预计需要花费 2 分钟才能阅读完成。

快速排序是一种常用的排序算法,它的实现思路是通过递归将数组不断地划分为两个子数组,直到每个子数组只有一个元素,然后再将子数组合并起来。快速排序的关键在于选择一个基准元素,然后通过交换元素的位置将小于基准元素的放在左边,大于基准元素的放在右边,最后将基准元素放到正确的位置上。

下面是一种用 Python 实现快速排序的方法:

def quick_sort(arr):
    if len(arr) <= 1:
        return arr
    else:
        pivot = arr[0]  # 选择第一个元素作为基准元素
        less = [x for x in arr[1:] if x <= pivot]  # 小于等于基准元素的子数组
        greater = [x for x in arr[1:] if x > pivot]  # 大于基准元素的子数组
        return quick_sort(less) + [pivot] + quick_sort(greater)

# 示例
arr = [4, 2, 5, 7, 1, 3, 6]
sorted_arr = quick_sort(arr)
print(sorted_arr)

运行以上代码,将输出 [1, 2, 3, 4, 5, 6, 7],表示已经对数组进行了快速排序。

在这段代码中,我们首先判断数组的长度是否小于等于 1,如果是,则直接返回该数组。然后选择第一个元素作为基准元素,并使用列表解析式将小于等于基准元素的元素放入 less 数组中,将大于基准元素的元素放入 greater 数组中。最后,递归地对 lessgreater数组进行快速排序,并将结果与基准元素合并起来。

需要注意的是,快速排序的实现可能因基准元素的选择而产生不同的效果。在上述例子中,我们选择的是第一个元素作为基准元素,但也可以选择其他元素作为基准元素,如中间元素、随机元素等。这样的选择可能会影响快速排序的时间复杂度和性能。

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-13发表,共计754字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)