【软考】数据结构与算法基础 - 查找算法

一、线性查找(Linear Search)

从数据结构的一端开始,逐个遍历每个元素,直到找到目标元素或遍历完整个数据结构。线性查找的时间复杂度为O(n),其中n是数据结构的元素个数。

二、二分查找(Binary Search)

要求:能够熟练写出或者上机编码出二分查找的程序。

只适用于有序的数据结构,每次将数据结构分成两半,比较中间元素与目标元素的大小关系,根据大小关系缩小查找范围,直到找到目标元素或范围为空。二分查找的时间复杂度为O(log n),其中n是数据结构的元素个数。

三、散列表查找(Hash Table Search)

利用散列函数将元素的关键字映射到数据结构的某个位置上,从而快速查找目标元素。散列表查找的平均时间复杂度为O(1),但是最坏情况下可能会退化到O(n),其中n是数据结构的元素个数。

四、树表查找(Tree Search)

利用树形结构进行查找,主要有二叉搜索树、AVL树、红黑树等。
树表查找的时间复杂度取决于树的平衡情况,最坏情况下可能会退化到O(n),其中n是数据结构的元素个数。

五、哈希查找(Hash Search)

利用哈希函数将元素的关键字映射到数据结构中的某个位置上,从而快速查找目标元素。哈希查找的时间复杂度通常为O(1),但是最坏情况下可能会退化到O(n),其中n是数据结构的元素个数。

猜你喜欢

转载自blog.csdn.net/wstever/article/details/132133413