数据结构与算法学习
星沁城
这个作者很懒,什么都没留下…
展开
-
排序算法——快速排序:普通快排与双路快排
很显然对于普通的快排来说只能处理大于base和小于base的情况,对于等于base的情况我们是做的模糊处理(哪边先碰到算哪边的),所以在待排序数组中元素重复度比较高的情况下会退化为O(n^2)。如:4,4,4,4,4,1。选取待排序数组的首或尾元素作为枢轴(就是base,我们选出来的比较的数),大于base的放右边,小于base的放左边。我们每次只能一个元素一个元素的拆开,而不是理想情况一半一半的拆,为了处理以上情况有了双路快排。原创 2024-10-04 13:44:27 · 267 阅读 · 0 评论 -
算法——单调栈
保持栈内的元素始终递增或递减。原创 2024-10-04 13:40:39 · 43 阅读 · 0 评论 -
排序算法——堆排序:大根堆、小根堆
利用二叉树进行排序,有大根堆排序和小根堆排序。原创 2024-10-04 13:32:19 · 147 阅读 · 0 评论 -
排序算法——桶排序
总的时间复杂度主要取决于桶内元素排序花费的时间,在最优情况下可以达到O(n+k),适用于数据分布均匀的情况下使用,不然容易变成普通快排一样大量数据堆积到一个桶内降低效率。原创 2024-10-04 13:28:55 · 41 阅读 · 0 评论 -
字典树(前缀树)
字典树(Trie树)又称前缀树,是一种树形结构,用于高效地存储和检索字符串数据集中的键。 字典树是一种哈希树的变种,其核心思想是利用字符串的公共前缀来减少查询时间,从而最大限度地减少无谓的字符串比较。原创 2024-10-04 12:50:01 · 34 阅读 · 0 评论