利用低端哨实现顺序表的查找

来源:互联网 发布:杭州小知科技 知乎 编辑:程序博客网 时间:2024/05/01 10:59

顺序查找(Sequential Search)又叫线性查找,是最基本的查找技术。

顺序表查找算法优化,在查找方向的尽头放置“哨兵”免去了在查找过程中每一次比较后都要

判断查找位置是否越界,当然也可以在末端放置“哨兵”。


#include<iostream>using namespace std;/* 顺序查找,a为数组,n为要查找的数组个数,key为要查找的关键字*///元素值从下标1开始int Sequential_Search1(int *a,int n,int key){    for(int 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;//返回0则说明查找失败}int main(){    int a[]={0,1,2,3,4,5,6,8,1,9,10};    int pos1=Sequential_Search1(a,10,1);    int pos2=Sequential_Search2(a,10,1);    cout<<pos1<<endl;//1    cout<<pos2<<endl;//8    return 0;}


0 0
原创粉丝点击