查找

查找概述

静态表查找查找

  • 顺序表查找
  • 有序表查找:二分查找,插值查找,Fibonacci查找[0.618] <-- 分割点不同
  • 索引查找:线性索引,树形索引,多级索引
    •  稠密索引
    •  分块索引:块间有序、块内无序,平均查找长度 sqrt(n)+1 ;
    •  倒排索引:速度快,索引项(次关键码,记录号表),由属性值确定记录位置。压缩优化;  

动态表查找:插入删除

  • 二叉查找树:BST,可为空树。中序遍历有序。提高查找和插入删除速度。平均O(logn)最坏O(n);
    •  平衡二叉树:AVL树,平衡因子|BF|≤1, [LL, LR, RR, RL]。平均和最坏O(logn);
    •  红黑树:  
  • 多路查找树:MST,多个结点元素、多个孩子。所有叶子在同一层。平衡。
    •  m-B树:2-3树和2-3-4树是m阶B树的特例;
    •  B-树:
    •  B+树:文件系统需要。叶结点再现关键字,有序、指针域,含全部信息。查找删除插入的命中结点必须是叶结点,适于带范围的查找; 

哈希查找查找

字典集、散列表,查找O(1)。 

插值查找

 

Fibonacci查找

 

二分查找

 

 

参考

 

posted @ 2016-11-26 00:11  万箭穿心,习惯就好。  阅读(156)  评论(0编辑  收藏  举报