奇怪的数据结构和算法名称

325 阅读3分钟

奇怪的数据结构和算法名称

我们心爱的数据结构和算法是如何得到它们的名字的?

我们遇到的一些算法是以其发明者的名字命名的,例如。 Dijkstra的最短路径算法是以计算机科学家Edsger W. Dijkstra的名字命名的,他在1956年构思了这个算法。同样地,在另一个文本字符串中搜索一个词的 Knuth-Morris-Pratt(KMP)算法用于在另一个文本字符串中搜索一个词,是以James H. Morris、Donald Knuth和James H. Morris 命名的。 沃恩-普拉特.

大多数的数据结构和算法都是基于它们的行为方式或外观。例如,队列和堆栈被命名是因为它们的推送和弹出行为。树之所以被称为树,是因为它们看起来像倒置的树。同样,有许多算法,如插入排序,或合并排序,都很容易与它们的名字联系起来。

但是,有一些数据结构和算法不大容易与它们的名字联系起来。在这里,我介绍其中的一些。

布谷鸟哈希算法

Cuckoo Hashing是一种散列算法,它提供了 ***O(1)***最坏情况下的查找。它的工作原理如下。

我们维护2个哈希表,以及与每个哈希表相对应的一个哈希函数。因此,让我们假设哈希表是H1H2H1的哈希函数是 f1H2的哈希函数为 f2.现在,让我们假设我们要输入值 x.我们首先检查 H1[f1(x)] 是空的。如果是,我们就把它放在H1的那个位置。 xH1的那个位置。
如果它不是空的,我们在H1的那个位置为 x的空间,将该位置上的元素移到H1中,比方说 yH2。我们将第二个哈希表H2中的值 y在第二个哈希表H2中的 H2[f2(y)].这个过程一直持续下去,也就是说,如果 **H2[f2(y)]如果不是空的,我们就会把这个元素。 z的位置移回H1H1[f1(z)].

布谷鸟是如何出现的?碰巧的是,某些种类的布谷鸟雏鸟在孵化时将其他鸡蛋或幼鸟推出巢外,为自己创造空间因此,布谷鸟散列。很有趣,对吗?

红黑树是一种自我平衡的二进制搜索树

红黑树中的节点,从名字本身就可以猜到,要么是红色的,要么是黑色的,用于确保树在插入或删除时保持平衡。

我一直想知道这些颜色的意义。好吧,他们可以使用任何其他颜色,**为什么只有黑色和红色?**事实证明,这是因为黑色和红色是作者在施乐PARC工作时可用的彩色激光打印机产生的最好看的颜色。

气泡排序或沉降排序

好吧,我知道这是个简单的问题!气泡排序是三种最基本的排序算法之一。

在泡泡排序中,我们比较相邻的元素,如果左边的元素大于右边的元素,就把它们交换。

每次我们从左到右进行这些交换时,未排序数组中最大的元素就会沉到最后。而在这个过程中,小的元素会冒出气泡。因此被称为泡沫排序或下沉排序。

请继续关注更多信息;)