499 次浏览
欧拉回路/环路是一条路径;通过它我们可以精确地访问每条边一次。我们可以多次使用相同的顶点。欧拉回路是欧拉路径的一种特殊类型。当欧拉路径的起始顶点也与该路径的结束顶点相连时,则称为欧拉回路。要检查图是否为欧拉图,我们必须检查两个条件-图必须是连通的。每个顶点的入度和出度必须相同。输入-图的邻接矩阵。0100000100000111000000100输出-找到欧拉回路算法traverse(u, visited)输入- ... 阅读更多
330 次浏览
在有向图中,当一个分量中的每对顶点之间都存在一条路径时,这些分量被称为强连通。为了解决此算法,首先,使用 DFS 算法获取每个顶点的完成时间,现在找到转置图的完成时间,然后根据拓扑排序对顶点进行降序排序。输入:图的邻接矩阵。0011010000010000000100000输出:给定图中的强连通分量如下-0 1 2 3 4算法traverse(graph, start, visited)输入:将要遍历的图、起始顶点以及已访问节点的标志。输出:使用 DFS 技术遍历每个节点并 ... 阅读更多
538 次浏览
要检查图的连通性,我们将尝试使用任何遍历算法遍历所有节点。完成遍历后,如果存在任何未访问的节点,则图未连接。对于有向图,我们将从所有节点开始遍历以检查连通性。有时一条边可能只有向外边而没有向内边,因此该节点将无法从任何其他起始节点访问。在这种情况下,遍历算法是递归 DFS 遍历。输入:图的邻接矩阵0100000100000111000001000输出:图是连通的。算法traverse(u, visited)输入:起始节点 u 和已访问节点以 ... 阅读更多
988 次浏览
对于二分搜索技术,列表被分成相等的部分。对于插值搜索技术,该过程将尝试使用插值公式找到确切的位置。找到估计位置后,它可以使用该位置分离列表。因为它每次都尝试查找确切位置,因此搜索时间减少了。如果项目均匀分布,则此技术可以轻松查找项目。插值搜索技术的复杂度时间复杂度:平均情况为 O(log2(log2 n)),最坏情况为 O(n)(当项目呈指数分布时)空间复杂度:O(1)输入-排序好的数据列表 10 13 15 ... 阅读更多
4K+ 次浏览
计数排序是一种稳定的排序技术,用于根据键值较小的数字对对象进行排序。它计算键值相同的键的数量。当不同键之间的差异不大时,这种排序技术效率很高,否则它会增加空间复杂度。计数排序技术的复杂度时间复杂度:O(n+r)空间复杂度:O(n+r)输入-未排序数据列表:2 5 6 2 3 10 3 6 7 8输出-排序后数组:2 2 3 3 5 6 6 7 8 10算法countingSort(array, size)输入:数据数组和总数 ... 阅读更多
2K+ 次浏览
希尔排序技术基于插入排序。在插入排序中,有时我们需要移动大块数据才能将项目插入到正确的位置。使用希尔排序,我们可以避免大量移动。排序以特定的间隔进行。在每次传递后,间隔都会减小以创建更小的间隔。希尔排序技术的复杂度时间复杂度:最佳情况为 O(n log n),对于其他情况,它取决于间隔序列。空间复杂度:O(1)输入-未排序列表:23 56 97 21 35 689 854 12 47 66 输出-排序后数组:12 ... 阅读更多
17K+ 次浏览
这种排序技术类似于纸牌排序技术,换句话说,我们使用插入排序机制对纸牌进行排序。对于此技术,我们从数据集中选取一个元素,并移动数据元素以腾出空间,然后将选取的元素插入回数据集中。插入排序技术的复杂度时间复杂度:最佳情况为 O(n),平均和最坏情况为 O(n2)空间复杂度:O(1)输入-未排序列表:9 45 23 71 80 55 输出-排序后数组:9 23 45 55 71 80算法insertionSort(array, size)输入:数据数组和总数 ... 阅读更多
20K+ 次浏览
在选择排序技术中,列表被分成两部分。在一部分中,所有元素都被排序,而在另一部分中,项目未排序。首先,我们从数组中获取最大或最小数据。获取数据(例如最小值)后,我们将其放置在列表的开头,方法是用最小数据替换第一个位置的数据。执行后数组会变小。因此,这种排序技术就是这样完成的。选择排序技术的复杂度时间复杂度:O(n2)空间复杂度:O(1)输入-未排序列表:5 9 7 23 78 20 输出-数组 ... 阅读更多
42K+ 次浏览
归并排序技术基于分治技术。我们将整个数据集分成更小的部分,并将它们按排序顺序合并成更大的部分。它对于最坏情况也非常有效,因为该算法对于最坏情况也具有较低的时间复杂度。归并排序技术的复杂度时间复杂度:所有情况均为 O(n log n)空间复杂度:O(n)输入-未排序列表:14 20 78 98 20 45 输出-排序后数组:14 20 20 45 78 98算法merge(array, left, middle, right)输入:数据集数组、左、中和右索引输出:合并后的列表开始 ... 阅读更多
695 次浏览
堆是完整的二叉树,可以是最小堆或最大堆。在最大堆中,根节点的键必须是堆中所有键中的最大值。此属性必须对该二叉树中的所有节点递归有效。最小堆类似于最小堆。函数描述void BHeap::Insert(int ele):执行插入操作以将元素插入堆中。void BHeap::DeleteMin():执行删除操作以从堆中删除最小值。int BHeap::ExtractMin():执行操作以从堆中提取最小值。void BHeap::showHeap():显示堆的元素。void BHeap::heapifyup(int in):自下而上维护堆结构。void BHeap::heapifydown(int in):自上而下维护 ... 阅读更多