📜  Hu-Tucker算法介绍

📅  最后修改于: 2021-10-27 06:23:53             🧑  作者: Mango

Hu-Tucker算法介绍:
Hu-Tucker 算法有助于压缩某些块的顺序,假设您对以下内容有一定的自然顺序,那么如果将字符串和音符考虑在内,那么将它们考虑在内,它们将按数字排序。
现在的问题是我们如何构建顺序以便压缩完美匹配,并且仍然提供相同的代码而不改变字符串的性质,即它们的顺序。
例如——“ Geeks for Geeks ”仍然是“Geeks for Geeks ”而不是“ for Geeks Geeks ”。

因此,我们在压缩事物时也需要保留顺序,因此将字符串排序为数字是要走的路。
好吧,为了解决所有这些问题,我们有一个名为 Hu-Tuker 的简单算法,即使它已经很老了,它也有助于获得准确的结果。

了解胡塔克:
该算法分为 3 个不同的阶段,然后交替评估每种方法的时间复杂度。之后,进行试验,然后证明对复杂性收取的金额是合理的。在所有 3 个阶段中,有 2 个独立的方法,分别采用 O(n 2 ) 和 O(nlogn) 复杂度。
因此,分界属性或区分线,正如一些人所说,将是从它们衍生出来的抽象关系。
然后,在编号之后,解码和编码过程由算法本身负责,就在键入值之后!

让我们看一棵树来更好地学习它:

胡塔克树。

如上图,第1 步,我们从树中看到,某些字符串(归类为 Beta)存储某些固定长度的值,这是我们在上面提到的。现在,在加班运行这些转换之后,它们对算法来说变得很弱,因此最终会被压缩。此外,当我们添加数字时,我们可以放心,订单将是完美的!

之后是pass 2,把最常出现的字符进行相应的分组,然后压缩再解压,这样占用的存储空间就少了,因为现在出现频率最高的字符已经分组了!

虽然这个算法已经很老了,但据说压缩的经典本质就是由此而来。此外,与其他方法相比,使用此方法仍有某些优势,因为此方法中的延迟和压缩下降确实更少。我们现在将看到 Hu-Tucker 算法的一个简短明了的例子,以更好地理解使用某些节点和字母符号的学习曲线。

实现 Hu Tucker 的算法如下:

1. 'terminal' label node 0, ... n-1
2. Repeat repetitions (n - 1):
    (a) find a pair I j) to be I I < j; 
    (ii) node I or j is not labelled "none" and
    (iii) no node (i+1, etc.)
    (iv) weight[i] + weight[j] is minimal, 
    (v) I is not unique after (iv) and (v) 
3. j is minimal if not unique following the selection process. 
    (a) Mix node j and 
    (b)save node j as new node I 
    (c) Weight[i]+= Weight[j] Weight[i] Weight
    (d) Node I 'interior' 
    (e) Node I 'not' Label node

Hu-Tucker 的应用:
让我们看一下 Hu Tucker 算法的 2 个应用,以便更好地理解。

  1. 实施搜索:
    由于 Hu Tucker 是一种压缩和模式查找算法,它可以用于在数据库中搜索模式,因为它使用树结构,并且所有搜索技术都尽可能广泛地使用二分搜索。
    例子:
    让我们将树的边数表示为“i”,它是另一组元素的子集,使得 i ∈ {1, 2, … . . , n},然后使用 Hu-Tucker 算法,我们可以在给定的集合中找到权重,并可以产生搜索结果。
  2. 最小化成本函数:
    从上面开始,Hu-Tucker 算法也是一种压缩技术,因此有助于找出最小成本函数计算。

用于最小化公式是:

La(w,l) , loga∑
Xn
i=1
w(i)a
l(i)

Hu-Tucker 的缺点:
尽管 Hu-Tucker 算法是一种简洁而深刻的算法,但与所有其他算法一样,它也有缺点和失败的地方。该算法有些奇怪,因为它依赖于许多有时不提供的其他信息。与上面的应用程序 2一样,对数函数需要太多的数据,这通常不是现代压缩算法的要求。此外,由于该算法已经过时,与此相比,较新的算法具有更好且更小的时间复杂度, 因此感觉有点过时和不如他们!

结论 :
这完全是关于 Hu-Tuckker 算法的简短介绍。希望这篇文章能帮助您掌握它的简要介绍,并帮助您铺平前进的道路!

如果您希望与专家一起参加现场课程,请参阅DSA 现场工作专业课程学生竞争性编程现场课程