自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 Counting Sort(计数排序)详解及其C++实现

计数排序不是基于比较的排序算法,其基本思想是对每一个输入的元素x,确定小于x的元素个数。为了实现这一点,算法需要一个额外的数组C,其中第i个元素是待排序数组A中值等于i的元素的个数。计数排序适用于小范围的整数,桶排序适用于数据分布较均匀的情况,可以处理更广泛类型的数据。对于包含负数的数组,可以通过调整数值(例如,加上数组中绝对值最大的负数的绝对值),将所有数转换为非负数,排序后再逆向调整。对于较大的数据范围,可以使用更复杂的算法如基数排序,它使用计数排序作为内部稳定排序方法,分步处理数字的每一位。

2024-04-14 15:36:09 911 2

原创 自平衡二叉搜索树(AVL树)的C++实现

AVL树是一种自平衡二叉搜索树。在这种树中,任何节点的两个子树的高度最多相差1。这种高度平衡保证了树的操作(如搜索、插入、删除)在最坏情况下都能保持对数时间复杂度。AVL树是一种自平衡二叉搜索树。对于树中的每一个节点,其左子树和右子树的高度最多相差1。这种高度平衡保证了树的深度保持对数级别,从而使得搜索、插入和删除操作都非常高效。每个节点存储一个键值、高度信息以及指向其左子节点和右子节点的指针。

2024-04-14 10:06:19 1090 2

原创 网络流规划中的Label Correcting Algorithm详解与C++实现

Label Correcting Algorithm 主要用于求解有向图中的单源最短路径问题,与 Dijkstra 算法类似,但它能够更好地处理图中存在负权重边的情况。该算法使用一个队列来存储待处理的顶点,并且允许顶点在队列中多次出现。Label Correcting Algorithm 提供了一个强大的工具,用于解决单源最短路径问题,尤其是在图中存在负权重边的情况下。虽然它在理论上的性能可能不如其他算法,如 Dijkstra 或 Bellman-Ford 算法,但它在处理特定类型的图时非常有效。

2024-04-13 21:23:03 798

原创 Floyd-Warshall算法C++实现

Floyd-Warshall 算法是一种用于解决图论中全源最短路径问题的经典动态规划算法。它可以在一个具有n个顶点的加权有向图中,找出任意两个顶点之间的最短路径长度。与单源最短路径问题不同,全源最短路径问题需要找出图中所有顶点对之间的最短路径长度。Floyd-Warshall 算法能够有效地解决这一问题,其时间复杂度仅为On3。

2024-04-13 19:30:49 919

原创 Bellman-Ford算法C++实现

Bellman-Ford算法是一种用于解决带负权重边的单源最短路径问题的经典算法。该算法由理查德·贝尔曼和艾德加·福特于20世纪50年代提出。以下是Bellman-Ford算法的详细介绍:算法概述:算法步骤:算法复杂度:算法应用:代码说明:数据结构:使用 来表示图的边, 来表示整个图。图的初始化:通过 函数向图中添加边。Bellman-Ford 算法实现:初始化所有顶点的最短路径估计值为无穷大,除了源顶点为0。进行 V-1 次迭代来松弛所有边。最后,再检查一次所有边,以确定图中是否存在

2024-04-13 19:18:14 317

原创 Dijkstra算法C++实现

Dijkstra 算法是一个用于在图中找到单源最短路径的算法,特别适用于没有负权边的图。以下是一个详细的 C++ 实现,包括图的表示、优先队列的使用以及算法的主体实现。

2024-04-13 19:12:13 312

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除