桶排序、计数排序、基数排序

本文介绍了三种非比较排序算法:桶排序、计数排序和基数排序。桶排序通过分配数据到有序桶中实现排序,计数排序通过统计每个元素出现次数排序,基数排序则基于关键字逐位排序。文章详细讲解了每种排序算法的应用场景、步骤及复杂度,并提供了多个实例进行说明,如LeetCode题目中的元素排序问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

排序算法分类:

内部排序 数据在内存中进行排序, 外部排序 数据量很大,一次不能容纳全部的数据,在排序过程中需要访问外存。

比较排序: 冒泡排序、选择排序、插入排序、归并排序、堆排序、快速排序;
非比较排序:计数排序、基数排序、桶排序。

排序算法的稳定性:两个相同的数排序前后的相对顺序不变。
在这里插入图片描述

一、桶排序(Bucket sort)

桶排序 (Bucket sort) 是一种通过 分桶和合并 实现的排序算法。
核心思想是把数据分配到有序的桶中,对每个桶分别进行排序,然后依次取出每个桶里的数据组成序列。

1、设置固定数量的空桶;// 尽量均匀地放到各个桶中
2、把数据放到对应的桶中;
3、对每个不为空的桶中数据进行排序;
4、拼接不为空的桶中数据,得到结果。

基本思路:一个萝卜一个坑,也可以多个萝卜一个坑,对每个坑排序,再拿出来,整体就有序。

<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值