数据结构与算法
文章平均质量分 91
刘不凡1998
哈尔滨工业大学(深圳)计算机科学与技术专业博士研究生在读,日常分享各种有意思的算法以及实现,帮助更多人理解算法之美。
展开
-
Counting Sort(计数排序)详解及其C++实现
计数排序不是基于比较的排序算法,其基本思想是对每一个输入的元素x,确定小于x的元素个数。为了实现这一点,算法需要一个额外的数组C,其中第i个元素是待排序数组A中值等于i的元素的个数。计数排序适用于小范围的整数,桶排序适用于数据分布较均匀的情况,可以处理更广泛类型的数据。对于包含负数的数组,可以通过调整数值(例如,加上数组中绝对值最大的负数的绝对值),将所有数转换为非负数,排序后再逆向调整。对于较大的数据范围,可以使用更复杂的算法如基数排序,它使用计数排序作为内部稳定排序方法,分步处理数字的每一位。原创 2024-04-14 15:36:09 · 1197 阅读 · 2 评论 -
自平衡二叉搜索树(AVL树)的C++实现
AVL树是一种自平衡二叉搜索树。在这种树中,任何节点的两个子树的高度最多相差1。这种高度平衡保证了树的操作(如搜索、插入、删除)在最坏情况下都能保持对数时间复杂度。AVL树是一种自平衡二叉搜索树。对于树中的每一个节点,其左子树和右子树的高度最多相差1。这种高度平衡保证了树的深度保持对数级别,从而使得搜索、插入和删除操作都非常高效。每个节点存储一个键值、高度信息以及指向其左子节点和右子节点的指针。原创 2024-04-14 10:06:19 · 1133 阅读 · 2 评论