查找算法

经典查找算法一般应用符号表来实现对数据的快速查找

其底层实现包括三种静态数据类型 :二叉查找树 ,红黑树 , 散列表

需要实现的基本API有

  • 创建表
  • 插入键值对
  • 获取key对应值
  • 删除key
  • 查询key是否存在对应值
  • 表是否为空
  • 表键值对数量
  • 所有键的集合

二叉查找树:以二叉树方式排列数据并使用二分法查找
  特点:对数级别的成本,与快排相似。但是最坏情况下的情况性能差

红黑树:2-3树的具体实现,用平衡插入算法解决了二叉树的自动调整问题,在最坏情况下仍然有较好的性能
  特点:红连接均为左连接

       没有结点同时与两条红色链接相连
     任意空链接到根节点路径上的黑色连接数量相同

散列表(哈希表):散列函数将键转换为索引,应用拉链法(一个散列值对应多个时插入链表)开放地址(留出空间便于键值对插入)处理碰撞               
  特点:相对于二叉树,代码更简单,查找时间更优(常数级)
     但是抽象结构更复杂

  

原文地址:https://www.cnblogs.com/lvoooop/p/10815620.html