![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构和算法
精研it行业工作中常用到的各种算法和数据结构,
帮助新人由浅入深提升自己的技能。
挨踢小明
以不加班为目的的程序员。具有部分完美主义,爱生活,爱工作,爱做饭,爱旅游。
展开
-
工作中会遇到的排序算法【c++】
小规模数据集:插入排序是较好的选择,尤其是数据接近有序时。大规模数据集:快速排序通常是最快的,但归并排序和堆排序在需要稳定性或避免最坏情况时也是合适的选择。内存限制:选择排序和堆排序由于原地排序,不需要额外的存储空间,在内存紧张的环境中表现良好。原创 2024-08-22 11:09:39 · 3 阅读 · 0 评论 -
常用导航/格子游戏/寻路算法(A*和Dijkstra)c++
A*算法(A-star)是一种广泛应用于路径搜索和图形遍历的启发式算法。它结合了广度优先搜索(BFS)和贪婪搜索的优点,以找到从起点到目标的最短路径。A*算法被广泛应用于人工智能、机器人导航和游戏开发中。在A*算法中,每个节点n都有一个代价值f(n),定义如下:g(n):从起点到节点n的实际代价,即已走过的路径长度。h(n):从节点n到目标节点的启发式估计代价,即预测的剩余路径长度。h(n)通常是欧几里得距离或曼哈顿距离。f(n):从起点经节点n到目标节点的估计总代价。A*算法在每一步中选择f(n)原创 2024-08-22 10:57:33 · 2 阅读 · 0 评论 -
哈夫曼树(Huffman Tree)【二叉树变种】c++
哈夫曼树(Huffman Tree),又称最优二叉树,是一种用于数据压缩的二叉树。它基于字符出现的频率来构建最优编码方案,使得编码后的数据长度最短。哈夫曼树由大卫·哈夫曼(David A. Huffman)于1952年提出,并因此命名。原创 2024-08-22 10:39:58 · 4 阅读 · 0 评论 -
红黑树【二叉树变种】c++
红黑树是一种自平衡二叉搜索树(BST),它确保在执行插入、删除等操作时,树的高度始终保持在对数级别,从而提供高效的数据操作。红黑树的主要特点是通过一些特定的规则来保持平衡,使得最坏情况下的操作复杂度为O(log n)。原创 2024-08-22 10:33:59 · 5 阅读 · 0 评论 -
二叉树的创建和遍历【c++】
前言:二叉树是什么?二叉树是一种树形数据结构,其中每个节点最多有两个子节点,通常称为“左子节点”和“右子节点”。二叉树被广泛用于各种计算机科学应用中,例如表达式解析、搜索算法、排序、数据存储等。主要特点根节点:二叉树的顶层节点称为根节点。树中的所有其他节点都可以通过根节点到达。 子节点:每个节点可以有零、一个或两个子节点,分别称为左子节点和右子节点。 叶子节点:没有子节点的节点称为叶子节点,它们位于二叉树的底层。 高度:二叉树的高度是从根节点到叶子节点最长路径上的节点数。二叉树的类型原创 2024-08-22 10:17:55 · 192 阅读 · 0 评论