个人理财 算法中使用的二进制堆和二进制搜索树 - 傻瓜

算法中使用的二进制堆和二进制搜索树 - 傻瓜

视频: 24 二叉查找树 2024

视频: 24 二叉查找树 2024
Anonim

特殊类型的树结构是 二元堆 ,它将每个节点元素置于特定的顺序。搜索树使您能够快速查找数据。获取数据项目,将它们按照排序顺序排列在树中,然后搜索该树是查找信息的更快方法之一。

在二进制堆中,根节点始终包含最小值。在查看分支时,您会发现上层分支总是比下层分支和分支小。其效果是保持树的平衡和可预测的顺序,使搜索变得非常有效。成本是保持树木平衡。

<! --1 - >

在应用程序所做的所有任务中,搜索更耗时,也是最需要的。即使添加数据(并在稍后进行排序)确实需要一定的时间,创建和维护数据集的好处也来自于使用它来执行有用的工作,这意味着要搜索重要的信息。因此,有时您可能会使用效率较低的CRUD功能,甚至是不太理想的排序例程,但搜索必须尽可能高效地进行。唯一的问题是,没有一个搜索能够以绝对有效的方式执行每个任务,所以你必须根据你期望做的搜索例程的一部分权衡你的选项。

<!两种更高效的搜索方法涉及使用二叉搜索树(BST)和二进制堆。这两种搜索技术都依赖于树形结构来保存用于访问数据元素的密钥。但是,这两种方法的安排是不同的,这就是为什么一个人在执行某些任务时有优势。这张图显示了一个BST的安排。

使用BST时按键的排列。

请注意,按键的顺序是左边出现较少数字,右边出现较大数字。根节点包含一个位于键范围中间的值,给BST一个易于理解的均衡方法来存储键。将此安排与此处显示的二进制堆对比。

使用二进制堆时的键排列。

每个级别都包含小于上一级别的值,并且根目录包含树的最大键值。另外,在这种特殊情况下,较小的值出现在左侧,而较大的值出现在右侧(尽管这个顺序没有严格执行)。该图实际上描述了一个

二进制最大堆。 还可以创建一个 二进制分钟堆 ,其中根包含最低的键值,每个级别的值都会更高,最高值将显示为树叶的一部分。如前所述,BST在用于执行搜索时比二进制堆有一些优点。以下列表提供了这些优点的一些亮点: 搜索元素需要O(log n)时间,与二进制堆的O(n)时间形成对比。

按顺序打印元素只需要O(log n)时间,与二进制堆的O(n log n)时间形成对比。找到地板和天花板需要O(log n)时间。

  • 定位第K个最小/最大元素需要O(log n)时间树正确配置。
  • 这些时间是否重要取决于您的应用程序。在花费更多时间搜索和减少构建树的情况下,BST趋向于最佳工作。二进制堆往往在密钥经常变化的动态情况下效果最好。二进制堆也提供了一些优点,如下面的列表所述:
  • 创建所需的结构所需的资源更少,因为二进制堆依赖于数组,因此它们也缓存更友好。
  • 构建二进制堆需要O(n)个时间,与BST相比,这需要O(n log n)时间。

使用指针来实现树是没有必要的。依靠二进制堆的变化(例如斐波那契堆)提供了诸如增加和减少O(1)时间的关键时间的优点。

算法中使用的二进制堆和二进制搜索树 - 傻瓜

编辑的选择

在Flash中使用活动文本 - 虚拟人物

在Flash中使用活动文本 - 虚拟人物

静态文本完成工作,为您提供信息网站访问者。但是Flash可以用文本来做更多的事情。有时候,你不希望自己的文本是文本,而是喜欢一堆可以弯曲,扭曲,移动,或者不能混合的独立字母形状。 Flash的分离命令...

移动网站质量保证测试 - 傻瓜

移动网站质量保证测试 - 傻瓜

在为IPhone推出新网站之前, iPad,始终在iPhone或iPad上全面测试其设计和功能,确保网站的外观和工作方式与您的想法完全相同。使用模拟器不能替代完成物理设备上的最终检查表。 As ...

QuarkXPress 5基本任务的快捷方式 - 虚拟人物

QuarkXPress 5基本任务的快捷方式 - 虚拟人物

QuarkXPress 5具有数吨和数吨的快捷方式。你大概不会记住他们中的大多数,但是你一定会发现自己一直在使用一两个。这里有一些有用的视图,调色板和对象选择任务的快捷键。 QuarkXPress查看快捷方式操作Mac Windows 100%命令+ 1 Ctrl + 1在窗口中装入Command + 0 Ctrl + 0 200%...

编辑的选择

如何将尼康D5300照片下载到计算机 - 傻瓜

如何将尼康D5300照片下载到计算机 - 傻瓜

你的尼康D5300,你可能会想用他们的照片编辑软件。您可以用两种方法将照相机中的照片和电影文件移到电脑上:通过USB电缆将照相机连接到电脑。您需要的电缆是随附的。

如何在播放期间放大尼康D7100照片 - 虚拟人物

如何在播放期间放大尼康D7100照片 - 虚拟人物

您的尼康D7100,如左图所示,您可以放大它,如右图所示。但是,您只能放大静止照片。此功能不适用于电影。以下是如何使用放大功能:放大。按Qual按钮。您可以...

如何在尼康D7100上播放时隐藏照片 - 虚拟人物

如何在尼康D7100上播放时隐藏照片 - 虚拟人物

可以使用隐藏图像选项在尼康D7100的播放菜单上隐藏一些照片,同时在播放过程中显示其他照片。假设你拍了100张照片--50次在商务会议上,50次在野外会议后。您想向您的老板展示您和您的同事的照片...

编辑的选择

IBS受害者如何制作草莓和奶油燕麦 - 假人

IBS受害者如何制作草莓和奶油燕麦 - 假人

您可以享用燕麦片如果你患有IBS。当快燕麦烹饪时,切碎草莓和香蕉(IBS主食),并从冰箱中取出椰奶。一旦这样做,燕麦片通常是准备倒。你可以添加不同的水果,甚至坚果作为你的...

如何为IBS患者制作绿鸡蛋烘焙者 - 假人

如何为IBS患者制作绿鸡蛋烘焙者 - 假人

使用自由放养的鸡,因为它们是谷物喂养,没有生长激素和抗生素,因此,IBS的肚子更健康。用任何鸡肉菜肴,一定要煮好你使用的任何一种鸡肉。当你对这道菜更加熟悉的时候,你可能会发现你并不需要...