写点什么

顺序查找

用户头像
ilovealt
关注
发布于: 2020 年 11 月 22 日

简介

顺序查找(Sequential Search)又叫线性查找,是最基本的查找技术。查找过程:从线性表中第一个或最后一个元素开始,逐个与给定值进行比较。

查找次数分析:

最好情况:1次;

最坏情况:n次;

失败情况:n+1次;

平均情况:(1+2+3+4+...+n)/n = (n+1)/2次;

时间复杂度为:O(n);

代码

#include <stdio.h>
#define MAXSIZE 100 /*存储空间初始分配量*/
/*a为数组,n为要查找的数组个数,key为要查找的关键字*/
/*无哨兵顺序查询*/
int Sequential_Search(int *a, int n, int key)
{
int i;
for (i = 1; i <= n; i++)
{
if(a[i] == key)
return i;
}
return 0;
}
/*有哨兵顺序查询*/
int Sequential_Search2(int *a, int n, int key)
{
int i;
a[0] = key;
i = n;
while (a[i] != key)
{
i--;
}
return i;
}
int main() {
int result;
int arr[MAXSIZE]={0,1,16,24,35,47,59,62,73,88,99};
result = Sequential_Search(arr, MAXSIZE-1, 88);
printf("Sequential_Search:%d \n", result);
result = Sequential_Search2(arr, MAXSIZE-1, 16);
printf("Sequential_Search2:%d \n", result);
return 0;
}



成长快乐!成长快乐!成长快乐!



总结自《大话数据结构》

发布于: 2020 年 11 月 22 日阅读数: 16
用户头像

ilovealt

关注

不忘初心,方得始终! 2018.05.02 加入

When you feel like giving up,remember why you held on so long in the first place.

评论

发布
暂无评论
顺序查找