找到关于算法的510 篇文章

针对已排序输入的有效霍夫曼编码

Sharon Christine
更新于 2020年6月15日 16:08:20

526 次浏览

在之前的霍夫曼编码问题中,频率没有排序。如果频率列表按排序顺序给出,则分配代码的任务将更高效。在这个问题中,我们将使用两个空队列。然后为每个唯一字符创建一个叶节点,并将其按频率递增的顺序插入队列。在这种方法中,算法的复杂度为 O(n)。输入和输出输入:不同的字母及其频率(按排序顺序)字母:{L, K, X, C, E, B, A, F} 频率:{1, 1, 2, 2, 2, 2, 3, 4} 输出:字母的代码 L: ... 阅读更多

霍夫曼编码算法

karthikeya Boyini
更新于 2022年12月23日 11:05:46

32K+ 次浏览

霍夫曼编码是一种无损数据压缩算法。在此算法中,为不同的输入字符分配可变长度代码。代码长度与字符的使用频率有关。最频繁出现的字符具有最短的代码,而最不频繁出现的字符具有较长的代码。主要有两个部分。第一个是创建霍夫曼树,另一个是遍历树以查找代码。例如,考虑一些字符串“YYYZXXYYX”,字符 Y 的频率大于 X,字符 Z 的频率最低。因此,Y 的代码长度小于... 阅读更多

Dijkstra 算法及其邻接表表示

karthikeya Boyini
更新于 2020年6月15日 16:25:50

5K+ 次浏览

给定一个图 G(V, E) 及其邻接表表示,并提供一个源顶点。Dijkstra 算法用于查找从源顶点到图 G 中任何其他顶点的最小最短路径。为了解决这个问题,我们将使用两个列表。一个用于存储已被视为最短路径树的顶点,另一个用于保存尚未考虑的顶点。在算法的每个阶段,我们找到未考虑的顶点,该顶点与源的距离最小。另一个列表用于保存前驱节点。使用... 阅读更多

活动选择问题

Samual Sam
更新于 2020年6月15日 16:28:54

4K+ 次浏览

给定 n 个不同的活动及其开始时间和结束时间。选择一个人能完成的最大活动数量。我们将使用贪心算法来查找下一个活动,该活动的结束时间在剩余活动中最小,并且开始时间大于或等于最后一个所选活动的结束时间。如果列表未排序,则此问题的复杂度为 O(n log n)。如果提供排序列表,则复杂度将为 O(n)。输入和输出输入:一个具有开始和结束时间的不同活动的列表。{(5,... 阅读更多

鸽巢排序

Sharon Christine
更新于 2020年6月15日 15:31:17

827 次浏览

这是一个非比较排序技术的示例。它用于项目数量和可能的键值范围大致相同的情况。要执行此排序,我们需要制作一些孔。所需的孔的数量由数字的范围决定。在每个孔中插入项目。最后从孔中删除并存储到数组中以进行排序。鸽巢排序技术的复杂度时间复杂度:O(n+2^k)空间复杂度:O(2^k)输入和输出输入:未排序的列表:802 630 20 745 52 300 612 932 78 187 输出:排序前的数据:802 630 20 745 ... 阅读更多

循环排序

Sharon Christine
更新于 2020年6月15日 15:43:42

689 次浏览

循环排序是一种就地排序算法。它也是一种基于比较的排序,对于任何其他就地排序技术都更高效。它找到执行排序任务所需的最小内存写入次数。循环排序技术的复杂度时间复杂度:O(n^2)空间复杂度:O(1)输入和输出输入:未排序数据的列表:23 63 98 74 20 14 36 45 99 78 输出:排序前的数组:23 63 98 74 20 14 36 45 99 78 排序后的数组:14 20 23 36 45 63 74 78 98 99算法cycleSort(array, size)输入 - 一组数据和总数... 阅读更多

梳排序

Jai Janardhan
更新于 2020年6月15日 14:29:38

1K+ 次浏览

梳排序和冒泡排序的基本思想相同。换句话说,梳排序是对冒泡排序的改进。在冒泡排序技术中,项目在每个阶段都与下一个项目进行比较。但是对于梳排序,项目按特定间隙排序。完成每个阶段后,间隙减小。此排序的递减因子或收缩因子为 1.3。这意味着完成每个阶段后,间隙除以 1.3。梳排序技术的复杂度时间复杂度:最佳情况为 O(n log n)。O(n^2/2^p) (p ... 阅读更多

三元查找

Rishi Raj
更新于 2020年6月15日 14:50:10

3K+ 次浏览

与二分查找一样,它也把列表分成子列表。此过程使用两个中间中间值将列表分成三部分。由于列表被分成更多细分,因此它减少了搜索键值的时间。三元查找技术的复杂度时间复杂度:O(log3 n)空间复杂度:O(1)输入和输出输入:排序好的数据列表:12 25 48 52 67 79 88 93 搜索键 52 输出:项目位于:3算法ternarySearch(array, start, end, key)输入 - 排序数组、起始和结束位置以及搜索键输出 - 键的位置(如果找到),否则错误... 阅读更多

指数搜索

Paul Richard
更新于 2020年6月15日 14:10:42

4K+ 次浏览

指数搜索也称为倍增或跳跃搜索。此机制用于查找可能存在搜索键的范围。如果 L 和 U 是列表的上限和下限,则 L 和 U 都是 2 的幂。对于最后一部分,U 是列表的最后一个位置。因此,它被称为指数。找到特定范围后,它使用二分查找技术来查找搜索键的确切位置。指数搜索技术的复杂度时间复杂度:最佳情况为 O(1)。O(log2 i)... 阅读更多

轮询调度中的操作系统时间分片

Arnab Chakraborty
更新于 2020年6月20日 09:50:34

243 次浏览

进程 爆发时间 A 4 B 1 C 8 D 1 时间片 = 10 个单位 A B C D A C C C 0 2 3 5 6 8 10 12 14 所以 A 将完成 8 个周期。

广告