首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
逍遥归来
掘友等级
iOS
拥抱变化,无限可能
获得徽章 7
动态
文章
专栏
沸点
收藏集
关注
作品
赞
13
文章 13
沸点 0
赞
13
返回
|
搜索文章
最新
热门
小码哥《恋上数据结构与算法第二季》笔记(八):桶排序(Bucket Sort)
创建一定数量的桶(比如用数组,链表作为桶)。 按照一定的规则(不同类型的数据,规则不同),将序列中的元素均匀分配到对应的桶。 分别对每个桶进行单独排序。 将所有非空桶的元素合并成有序序列。 数组中有8个元素,那么创建8个桶。 元素在桶中的索引:元素值 * 元素数量。 空间复杂度…
小码哥《恋上数据结构与算法第二季》笔记(七):基数排序(Radix Sort)
基数排序非常适合于整数排序,尤其是非负整数。 执行流程:依次对个位数,十位数,百位数,千位数,万位数...进行排序(从低到高位)。 没有十位数或没有百位数的,当作0处理。 个位数,十位数,百位数的取值范围都是固定的0-9,可以使用计数排序对它们进行排序。 最好,最坏,平均时间复…
小码哥《恋上数据结构与算法第二季》笔记(六):计数排序(Counting Sort)
用空间换时间,在某些时候,平均时间复杂度可以比O(nlogn)更低。 计数排序的思想是,统计每个整数在序列中出现的次数,进而推导出每个整数在有序序列中的索引。 这个版本的时间复杂度是O(n)。 无法对负整数进行排序。 极其浪费内存空间。 不稳定的排序。 我们只需要一个数组,能存…
小码哥《恋上数据结构与算法第二季》笔记(五):希尔排序(Shell Sort)
希尔排序把序列看作一个矩阵,分为m列,逐列进行排序。 m从某个整数逐渐减为1,当m为1时,整个序列将完全有序。因此也被称为递减增量排序。 矩阵的列数取决于步长序列,如果步长序列为【1,5,19,41,109...】就代表依次分为109列,41列,19列,5列,1列进行排序。不同…
小码哥《恋上数据结构与算法第二季》笔记(四):快速排序(Quick Sort)
从序列中选择一个轴点元素(pivot),假设每次选择0位置的元素为轴点元素。 利用pivot将序列分割成2个子序列,将小于pivot的元素放在pivote前面(左侧),将大于pivot的元素放在pivot后面(右侧),等于pivot的元素放在哪边都可以。 对子序列进行上一步操作…
小码哥《恋上数据结构与算法第二季》笔记(三):归并排序(Merge Sort)
不断地将当前序列平均分割成2个子序列,直到不能再分割。(序列中只剩1个元素) 不断地将2个子序列合并成一个有序序列,直到最终只剩下1个有序序列。 递归调用,将数据递归划分到最小,然后再合并。 两个数组都有一个指向头节点的指针。 比较两个指针对应值的大小,将小的值取出,并将其指针…
小码哥《恋上数据结构与算法第二季》笔记(二):插入排序
插入排序非常类似于扑克牌的排序。 在执行过程中,插入排序会将序列分为两部分。头部是已经排好序的,尾部是待排序的。 从头开始扫码每一个元素,每当扫码到一个元素,就将它插入到头部合适的位置,使得头部数据依然保持有序。 数组[2,3,8,6,1]的逆序对为:<2,1> &#…
小码哥《恋上数据结构与算法第二季》笔记(一):冒泡、选择、堆排序
从头开始比较每一对相邻元素,如果第一个比第二个大,就交换它们的位置。 执行完一轮后,最末尾那个元素就是最大元素。 忽略上一步中曾经找到的最大元素,重复执行步骤一,直到全部元素有序。 如果序列已经完全有序,可以提前终止冒泡排序。 增加一个bool值,用于判断一次循环后是否有数据交…
小码哥《恋上数据结构与算法》笔记(十六):Trie
Trie 也叫做字典树、前缀树(Prefix Tree)、单词查找树。 Trie 搜索字符串的效率主要跟字符串的长度有关。 假设使用 Trie 存储 cat、dog、doggy、does、cast、add 六个单词。 假设要查找dog,首先在根节点搜索有没有d子节点,然后再查看…
小码哥《恋上数据结构与算法》笔记(十五):哈夫曼编码
哈夫曼编码,它是现代压缩算法的基础。 假设把字符串"ABBBCCCCCCDDDDDDEE"转成二进制编码进行传输。 先计算出每个字母的出现频率(权值,这里直接用出现次数)。 利用这些权值,构建一颗哈夫曼树。 以权值作为根节点构建n棵二叉树,组成森林。 在森林中选出2个根节点最小…
下一页
个人成就
文章被点赞
383
文章被阅读
154,888
掘力值
3,540
关注了
40
关注者
772
收藏集
3
关注标签
6
加入于
2019-11-06