zoukankan      html  css  js  c++  java
  • 数据结构:第七章学习小结

    第七章的学习主要内容是查找。

    一、查找的基本概念有(1)查找表(2)关键字(3)查找(4)动态查找表和静态查找表(5)平均查找长度

    二、线性表的查找

      1、顺序查找

        (1)从表的一端开始,依次将记录的关键字和给定值进行比较,若某个记录的关键字和给定值相等,则查找成功;反之,若扫描整个表后,仍未找到关键字和给定值相等的记录,则查找失败

        (2)时间复杂度O(n)

        (3)优点:算法简单,对表结构无要求,无论记录是否按关键字有序均可应用

        (4)缺点:平均查找长度较大,查找效率较低

      2、折半查找

        (1)满足有序、顺序存储可用

        (2)T(n)=O(log2(n)),S(n)=O(1)  

        (3)无序顺序存储:T(n)=O(nlog(n))+O(log2(n))=O(nlog2(n))

        (4)关于链式存储:可以应用二分查找,但不能在log2(n)时间复杂度内,因为无法随机存取

        (5)二分查找应用场景局限性(适用于静态查找):

          ①顺序存储

          ②针对有序数据

          ③数据量小且比较操作不耗时,不需要二分

          ④数据量不可太大(超出内存可用连续空间)

      三、树表的查找

      1、二叉排序树

        (1)条件:

          ①左子树小于根节点,右子树大于根节点

          ②左子树是二叉排序树

          ③右子树是二叉排序树

        (2)过程:

          ①查找

          ②插入

          ③创建

          ④删除

      2、不同插入次序生成结果不同

        (1)最好:O(log2n)

        (2)最坏:O(n)

      四、散列表的查找

      1、主要研究问题

        (1)如何构造散列函数

        (2)如何处理冲突

      2、好的散列函数的规则

        (1)函数计算要简单,每一关键字只能由一个散列地址与之对应

        (2)函数的值域须在表长的范围内,计算出的散列地址的分布应均匀,尽可能减少冲突

  • 相关阅读:
    转 Unicdoe【真正的完整码表】对照表
    golang中,unsafe.sizeof到底是干嘛的?
    转载 Golang []byte与string转换的一个误区
    python异常处理--try except else raise finally
    微信静默授权增加浏览器历史记录导致跳转死循环的解决方案
    package-lock.json,我们应该了解
    webpack实现静态资源缓存的那点事
    webpack+babel项目在IE下报Promise未定义错误引出的思考
    CORS预检请求详谈
    谈谈form-data请求格式
  • 原文地址:https://www.cnblogs.com/JXZ001031/p/13200609.html
Copyright © 2011-2022 走看看