首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
经典排序算法
订阅
锥栗
更多收藏集
微信扫码分享
微信
新浪微博
QQ
11篇文章 · 0订阅
【经典排序算法】10. 基数排序
基数排序又是桶排序的改进,基数排序根据每个位数只包含10个数,开辟10个桶,通过对位数低到高地计数数组元素每个位数的数值(类似于计数排序),划分到对应桶中完成排序。对于十进制整数来说,基数排序是非常高效的。
【经典排序算法】9. 桶排序
桶排序,将待排序数据平均切分为几个区间(不同的区间之间本身就是有序的),叫做桶,每个桶各自将元素排序好,再将桶内数据合并即可完成排序。桶排序必须将数据均匀分布在桶中,如果数据全在一个桶中,排序会退化为桶内的排序类型。 计数排序可以看做是一种极端的桶排序,一个数就对应一个桶,一个…
【经典排序算法】8. 计数排序
之前的排序都是基于比较的排序。计数排序,包括后面桶排序和基数排序则不是。 计数排序,顾名思义,记录元素的出现次数来排序。指定一个新数组,数组索引用来记录存储的元素,数组数字记录出现元素的次数。 计数排序经过一定的改进可以是out-place,稳定的线性时间排序算法。该排序适用于…
【经典排序算法】07. 堆排序
堆排序是利用最大堆性质和维护最大堆的操作来进行的排序。 如果堆是以 1 为起始结点索引的话,数组索引从左到右0,1,2...,对应堆中每个节点的索引顺序,就是对二叉堆层序遍历每个结点的顺序。对于二叉堆的某个结点索引$i$来说,$i$的父结点索引为 i/2,$i$的左子结点索引为…
【经典排序算法】6. 快速排序
快速排序是冒泡排序的一种改进版本。 快速排序虽然最坏情况的时间复杂度是O(n²)(给顺序数组排列,将退化为冒泡排序),但是其性能在顺序性越差的数据中表现越好,甚至可以比归并排序要好。这是因为虽然快速排序跟归并排序的平均时间复杂度都是O(nlogn),但是快速排序的O(nlogn…
【经典排序算法】5. 归并排序
输出实例的动画演示如下:归并排序(省略merge):merge函数:
【经典排序算法】4. 希尔排序
希尔排序是插入排序的一种改进版本。 可以看做是一种分组的插入排序,分组的变化受小组尾索引 $i$ 和分组步长$step$控制,分好组后,对每个小组的元素执行插入排序即可。
【经典排序算法】3. 插入排序
对顺序性强的数据,插入排序就比较快(最好情况O(n))代码如下:实例动画演示如下:
【经典排序算法】2. 选择排序
代码如下:该实例的动画演示如下:
【经典排序算法】1. 冒泡排序
代码如下:之后省略