1
算法与数据结构  C语言版
1.11.5 本章小结
本章小结

查找是数据处理中经常出现的一种操作,查找表是一种以集合为逻辑结构、以查找为核心运算的数据结构。根据不同的应用,可以将查找按顺序结构、链式结构、索引结构、散列结构进行存储。基于在查找表中的操作不同,查找表可分为静态查找和动态查找。

静态查找主要有两种,即顺序查找和二分查找。顺序查找时间复杂度为O(n),时间复杂度高。二分查找需要查找对象是有序的且采用顺序方式存储,每一次都找1/2的部分,查找次数大大减少了,时间复杂度是O(log2n)。

动态查找:二叉排序树和平衡二叉树,树表查找是将查找表组织成为特定形式的树结构,并按其规律进行的查找,也可以理解为这是一种树结构的应用。在二叉排序树的查找中,关键码比较的次数不会超过二叉树的深度,平均查找的时间复杂度为O(log2n)。

散列表是根据选定的散列函数和解决冲突的方法,把结点按关键码转换为地址进行存储的。对散列表的查找方法是:首先按所选的散列函数对关键码进行转换,得到一个散列地址,然后按该地址进行查找,若不存在,再根据构建散列表时所用的处理冲突的方法进一步查找。如果是静态查找,则查找成功时,给出查找结点的所需信息,否则给出失败信息;若是动态查找,则根据查找结果再进行插入或删除。