5查找——数据结构基础篇
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5查找——数据结构基础篇相关的知识,希望对你有一定的参考价值。
查找
查找的基本概念
查找的目的是从给定的同一类型的数据集合中,找出人们所需要的数据元素(或记录)
线性表的查找——静态查找
在对查找表实施静态查找时,查找表的组织结构可以是顺序表结构,也可以是单链表结构
静态查找的方法:
顺序查找:
顺序查找是用待查找记录与查找表中的记录逐个比较,如果找到相等记录,则查找成功,否则查找失败
顺序查找对关键字的是否有序没有要求,但是查找效率低下
时间复杂度为O(n)
注意:当n较大时,不宜采用顺序查找
折半查找(二分查找)
折半查找的前提条件:查找表有序且顺序存储
折半查找是用待查找元素与查找表中间元素的关键字进行比较
二分查找判定树
树表查找——动态查找
在查找表中实施查找时,对于给定值key,如果表中存在关键字值等于key的记录,则查找成功,否则将待查找记录按规则插入查找表中
二叉排序树查找:
其前提条件:将查找表组织成为一棵二叉排序树
二叉排序树查找的最好时间复杂度O(log2n)
二叉排序树查找的最差时间复杂度O(n)
二叉排序树查找效率必顺序查找要好,比二分查找要差
注意平衡二叉树是其平衡因子只能是0、1、-1否则就是二叉排序树
散列查找——hash,哈希查找
一种不通过大量无效的比较,就能直接找到待查关键字的位置的查找方法
hash方法——在存放记录时,通过相同函数计算存放位置,并按此位置存放
hash地址——通过hash函数计算记录的存储位置,我们把这个存储位置叫做hash地址
hash方法需要讨论三个问题:
1)装载因子
2)hash函数
3)解决冲突
构造hash函数应注意以下几个问题:
1)计算hash函数所需要的时间
2)关键字的长度
3)hash表的大小
4)关键字的分布情况
5)记录的查找频率
构造hash函数的常用方法:
1)直接定址法
2)除留余数法
3)平方取中法
4)数字分析法
5)折叠法
处理冲突的方法:
1)开放地址法:
线性探测再hash
二次探测再hash
伪探测再hash
线性探查法的性能分析:
2)链地址法
拉链法查找的性能分析:
以上是关于5查找——数据结构基础篇的主要内容,如果未能解决你的问题,请参考以下文章