LeetCode分类练习-Task04:查找2

本文深入探讨了桶排序算法的原理与应用,通过对比快速排序,解析了桶排序如何利用值域特性进行高效排序。此外,文章还精选了一系列LeetCode题目,包括两数之和、三数之和等,旨在帮助读者掌握桶排序技巧并应用于实际问题解决。

续接LeetCode分类练习-Task03:查找1

桶排序:

桶排序是将待排序集合中处于同一个值域的元素存入同一个桶中,也就是根据元素值特性将集合拆分为多个区域,则拆分后形成的多个桶,从值域上看是处于有序状态的。对每个桶中元素进行排序,则所有桶中元素构成的集合是已排序的。

快速排序是将集合拆分为两个值域,这里称为两个桶,再分别对两个桶进行排序,最终完成排序。桶排序则是将集合拆分为多个桶,对每个桶进行排序,则完成排序过程。两者不同之处在于,快排是在集合本身上进行排序,属于原地排序方式,且对每个桶的排序方式也是快排

算法过程:

  • 根据待排序集合中最大元素和最小元素的差值范围和映射规则,确定申请的桶个数;
  • 遍历待排序集合,将每一个元素移动到对应的桶中;
  • 对每一个桶中元素进行排序,并移动到已排序集合中。

桶排序和分块排序有相似的地方,可以互相借鉴。

刷题

1.两数之和
15. 三数之和
16. 最接近的三数之和
18. 四数之和
49. 字母异位词分组
219. 存在重复元素 II
220. 存在重复元素 III
447. 回旋镖的数量
454. 四数相加 II

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值