第8章 查找
本章内容
本章主要介绍多种查找的算法,包括它们的查找过程、查找复杂度以及实现等等,本章在考研中仍然是重点内容。
8.1 查找的分类
8.2 平均查找长度ASL
查找算法的基本操作是比较,通常把查找过程中对关键字的平均比较次数(平均查找长度)作为衡量一个查找算法的优劣标准,平均查找长度为ASL:
Pi代表查找第i个元素成功的概率,Ci代表找到第i个元素所需的比较次数。
8.3 顺序查找
思路:按顺序逐个比较,直到找到或者找不到为止。
代码:
int Search(int a[], int n, int x) {
for (int i = n-1; i >=0; i--) {
if (a[i] == x) {
return i;
}
}
return -1;
}
分析:
查找成功的ASL:(n+1)/2
时间复杂度:O(n)
8.4 折半查找
思路:待查找的表必须是有序的&#