查找
文章目录:
- 顺序查找
- 折半查找
- 分块查找
- B树
- B+树
- 二叉排序树
- 平衡二叉树
- 散列表
- 字符串的模式匹配(KMP)
首先了解一下查找的基本概念:
- 首先下面的图是一般的查找方法:明确查找的数据结构和数据次序这两个问题是解决查找问题的捷径。
- ASL:即平均查找长度(平均比较次数),是衡量一个查找算法效率优劣的标准
1.顺序查找
顺序表的查找分为有序查找和无序查找
- 无序查找
1.无序查找的代码实现
①通过添加哨兵的方式
2.查找成功和失败的ASL
注意:这里通过对elem[0]添加哨兵的形式,所以当查找失败时才是n+1次比较。(添加哨兵实质上就是减少了之后查找失败的判断的部分)
②不添加哨兵的方式:
#include<stdio.h>
#define MAXSIZE 8
int search(int a[],int n, int k)
{
int i;
for(i=0;i<n;i++)
if(a[i] == k)
printf("k在数组的位置为第%d个\n",i+1);
return 0;
}
int main(