9.查找
9.1 简介
查找是在一组数据中查找需要检索的数据,并输出他的位置。
查找按照数据量的大小分为内部查找和外部查找:
内部查找:数据量较小,可以直接载入内存进行查找;
外部查找:数据量较大的文件,无法一次载入内存处理,需要辅助存储器来分次处理。
根据在查找过程中查找的数据是否变动将查找区分为静态查找和动态查找:
静态查找:查找过程中,查找数据不会增加、删除或者更新等行为;
动态查找:查找过程中会经常性的增加、删除或更新。
9.2 常见的查找方法
常用的方法有:顺序查找、二分查找法、斐波那契法、插值查找法、哈希法等。
9.2.1 顺序查找法
顺序查找法又称为线性查找法,是一种简单的查找法。
他的思路是将数据按照顺序依次查找,不管数据顺序如何都要从头到尾遍历一次。
优点:文件在查找前不需要进行任何处理与排序;
缺点:查找速度慢。
特性:
1)时间复杂度,最差情况是未找到数据,但是比较了n次,时间复杂度为O(n);
2)在平均情况下,假设数据出现概率相等,需要(n+1)/2次查找;
3)数据量很大时候,不适合采用顺序查找法。
9.2.2 二分查找法