云盘资源分享论坛

 找回密码
 立即注册
搜索
热搜: 书籍 电影 音乐
查看: 166|回复: 0

实现一个快速排序算法。

[复制链接]

966

主题

156

回帖

4492

积分

中级会员

Rank: 3Rank: 3

UID
32013
金钱
3371
钻石
7
积分
4492
注册时间
2023-7-27
发表于 2023-8-14 11:00:02 | 显示全部楼层 |阅读模式

以下是使用快速排序算法对一个数组进行排序的示例(使用递归方法):

  1. def quicksort(arr):
  2.     if len(arr) <= 1:
  3.         return arr
  4.     else:
  5.         pivot = arr[0]  # 选择第一个元素作为基准点
  6.         less = [x for x in arr[1:] if x <= pivot]  # 比基准点小的元素
  7.         greater = [x for x in arr[1:] if x > pivot]  # 比基准点大的元素
  8.         return quicksort(less) + [pivot] + quicksort(greater)
复制代码
这个函数通过递归的方式实现了快速排序算法。首先,选择数组的第一个元素作为基准点(pivot)。然后,遍历数组,将比基准点小的元素放入一个新的数组 less 中,将比基准点大的元素放入另一个新的数组 greater 中。最后,递归地对 less 和 greater 进行快速排序,并将排序后的结果与基准点拼接起来。
例如,如果你调用 quicksort([5, 2, 8, 1, 9]),它将返回 [1, 2, 5, 8, 9],即按升序排列的给定数组。
快速排序算法的时间复杂度为 O(n log n),其中 n 是数组的长度。它是一种高效的排序算法,通常用于对大规模数据进行排序。

盘基地论坛免责声明
1、本站资源来自互联网用户收集发布,仅供用于学习和交流。
2、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。
3、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决。
4、联系邮箱:admin@panjdzy.com
5、官方网址:www.panjdzy.com
6、备用网址:www.panjd.top




上一篇:编写一个函数,计算一个整数的阶乘。
下一篇:编写一个函数,判断一个图是否是有向无环图(DAG)。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|云盘资源分享论坛

GMT+8, 2025-6-25 15:27

Powered by Discuz!    联系邮箱:admin@panjdzy.com

本站资源来自互联网用户收集发布,仅供用于学习和交流。

如有侵权之处,请联系站长并出示版权证明以便删除,敬请谅解!

快速回复 返回顶部 返回列表