zoukankan      html  css  js  c++  java
  • 查找算法

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

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

    需要实现的基本API有

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

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

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

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

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

      

  • 相关阅读:
    iOS 面试题 1
    ios 面试题 0
    得到程序包路径
    UISwitch 监听响应
    在[self addsubView:xxx]中,self.name 和 _name的区别
    /调整button的title的位置
    //设置导航条背景图片
    警告框
    @synthesize
    打开控制台选中路径的文件夹
  • 原文地址:https://www.cnblogs.com/lvoooop/p/10815620.html
Copyright © 2011-2022 走看看