鱼C论坛

 找回密码
 立即注册
查看: 154|回复: 3

[技术交流] “天天”练习(2)

[复制链接]
发表于 昨天 15:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 某一个“天” 于 2025-1-13 16:06 编辑

上期解析:
# True
# False
# False
filter 返回的是一个 惰性求值的迭代器,它本身在布尔上下文中会被认为是 True,即使没有元素。
要判断 filter 是否有符合条件的元素,可以将其转换为 list,或者使用 any()、all() 等函数。


手写排序算法: 实现一个 quick_sort() 快速排序算法。要求你手动实现该算法,而不是使用内建的 sorted() 或 sort() 函数。
游客,如果您要查看本帖隐藏内容请回复

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 昨天 15:09 | 显示全部楼层
def quick_sort(arr):
    if len(arr) <= 1:  # 如果数组长度小于等于1,直接返回
        return arr
    else:
        pivot = arr[0]  # 选择第一个元素作为基准
        # 分别存储小于和大于基准的元素
        less_than_pivot = [x for x in arr[1:] if x <= pivot]
        greater_than_pivot = [x for x in arr[1:] if x > pivot]
        # 递归对每部分进行排序并合并结果
        return quick_sort(less_than_pivot) + [pivot] + quick_sort(greater_than_pivot)

# 示例使用
arr = [3, 6, 8, 10, 1, 2, 1]
sorted_arr = quick_sort(arr)
print(sorted_arr)  # 输出: [1, 1, 2, 3, 6, 8, 10]
上述代码实现了一个基本的快速排序算法。通过递归地将数组分割为小于、等于、大于基准元素的三个部分,然后对这三个部分分别排序,从而达到排序的目的。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 昨天 15:25 | 显示全部楼层
建议题目和答案写在一个帖子里,可以用隐藏的形式,不然不好找哦~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 昨天 16:05 | 显示全部楼层
小甲鱼的二师兄 发表于 2025-1-13 15:25
建议题目和答案写在一个帖子里,可以用隐藏的形式,不然不好找哦~

好的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-14 21:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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