- 博客(15)
- 收藏
- 关注
原创 Trie 树介绍
Trie 树是一个高效的字符串检索数据结构,也叫字典树或前缀树。假设我们要构建一个 Trie 树来存储以下单词:[“cat”, “car”, “cart”, “card”]。Trie 树的结构如下。
2025-01-04 18:34:19
244
原创 Visual Code 的 Vim 插件极简使用手册
文件 -> 首选项 -> 设置 -> 搜索 vim,向下找到在 setting.json 中添加如下配置。
2024-12-15 12:37:57
738
原创 基于比较的排序算法总结
排序算法最好时间复杂度平均时间复杂度最坏时间复杂度特殊数据时的时间复杂度空间复杂度稳定性应用场景冒泡排序O(n)O(n²)O(n²)O(n),当数据有序时O(1)稳定选择排序O(n²)O(n²)O(n²)O(1)不稳定插入排序O(n)O(n²)O(n²)O(n),当数据有序时O(1)稳定归并排序O(nlogn)O(nlogn)O(nlogn)O(n),当数据有序时O(n)稳定求数组中的逆序对快速排
2024-12-11 21:36:21
245
原创 冒泡排序算法
冒泡排序的主要过程是:对于一个数组,从头到尾依次比较相邻的两个元素,如果前后两个元素存在逆序,则交换这两个元素的位置。n 个元素的数组,需要进行 n-1 轮比较,每一轮比较都会确定一个元素的最终位置。
2024-12-09 07:53:28
374
原创 堆结构介绍
堆一般使用二叉树来表示,堆是一棵完全二叉树。堆有两种类型:最大堆和最小堆。最大堆:每个节点的值都大于或等于其左右子节点的值。最小堆:每个节点的值都小于或等于其左右子节点的值。堆能够快速的获取最大值或最小值。
2024-11-24 20:27:30
308
原创 归并排序(自顶向下)
归并排序的基本思想是分而治之。首先把待排序的序列拆分为两个子序列,这两个子序列又各自拆分为两个子序列,就这样不断的向下拆分,直到每个子序列只有一个元素。接着开始合并子序列形成一个较长的有序子序列,合并后的子序列又为下一次合并做准备,直到所有子序列都合入到一个整体,所有数据有序。
2024-10-26 11:46:40
197
原创 二分查找算法
二分查找是在有序数据中查找目标值的一种高效算法。它的基本思想是:把目标值与查找范围内的中间值比较,如果相等返回该值的在整个序列中的位置。如果不相等,则根据大小关系缩小一半的查找范围,继续查找,直到找到目标值或者查找范围为空。
2024-10-06 16:54:35
343
原创 快速排序算法
三路快速排序是一种改进的快速排序算法,它将数组分成三个部分:小于枢轴的部分、等于枢轴的部分和大于枢轴的部分。这样可以更高效地处理包含大量重复元素的数组。
2024-09-28 21:02:45
275
原创 归并排序(自底向上)
自底向上归并排序是一种非递归排序算法。它首先把待排序的数组拆分为多个长度为 2 的子序列(不足2的部分也作为一个子序列看待),接着对每个子序列进行排序,保证每个子序列内部是有序的,然后在这个基础上把数组拆分为多个长度为 4 的子序列,对每个子序列进行排序,以此类推,每次迭代子序列的长度翻倍,直到子序列长度能覆盖数组长度,最终完成排序。
2024-09-22 17:05:07
267
原创 插入排序算法
插入排序的基本思想是将数组分为已排序和未排序两部分,每次从未排序部分取出一个元素,插入到已排序部分的适当位置。对于小规模数据和基本有序的数据,插入排序是一个高效的排序算法。
2024-09-21 16:40:13
217
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人