树结构

二叉树:

比保存在左子树的任何键值都要大,比保存在右子树的任何键值都要小。父节点比子一代的左节点大,比子一代的右节点小。

在数据库中,查找n个学生中学生年龄为24的学生。不使用其他算法结构,逐一查找则需要查找n次。

使用二叉树生成一个年龄的二叉树索引,则只需要log n次查找。

 

注: 二叉树适于查找一个特定的值。

 

B+树:

在二叉树的基础上,在二叉树的最底层节点才保留信息(表中行的位置)。二叉数的节点只是为了在搜索中用来指引导正确的节点位置。

通过二叉来找到指定的一个边缘值,再通过后续节点依次找到另一个边缘值。

查找范围之间的5个数的时间复杂度为:log n + (5-1)   n为表的所有行数。

 

注:

当表进行了增删及更新操作时,为更新索引,B+树需要自我调整,也就会减慢这些操作的执行。

 

哈希表:

一个哈希关键字对应一个哈希桶,哈希桶存放着经过哈希函数分类后的元素值。

比如哈希函数是元素对10取模,11,21放进哈希桶1;33,63放进哈希桶3.

时间复杂度关键在于  哈希函数。  好的哈希函数在哈希表里的搜索的时间复杂度为o(1);

 

posted @ 2017-08-05 09:38  halo-漾  阅读(164)  评论(0编辑  收藏  举报