(1.3.2)查找:顺序查找与哨兵

来源:互联网 发布:ti6双败赛制 知乎 编辑:程序博客网 时间:2024/05/16 10:01
 简单顺序查找对数据表的特性没有要求,即是否具有递增递减特性基本不影响查找的性能。基本死就

是从表的一段开始逐个比较元素,若找到则返回元素在表中对应位置;否则,则返回一个无意义的位置标

识。

/* 顺序查找,a为数组,n为要查找的数组元素个数,key为要查找的关键字*/int Sequential_Search(int *a, int n, int key){     int i = 0;     for(; i < n; i++)     {          if(a[i] == key)               return i;     }     return 0;}
 值得一提的是设置监视哨这一思想,将a[0]设置成监视哨则可以避免每次比较元素后都需要判断下标是

否越界这一问题,从而节省了时间。当然,a[0]中将不能在存放有效元素。

 下面介绍一个以整型数组为例的查找实现:
    /*带哨兵的直接顺序查找*/int sequential_search(int a[],int n,int key)  //n为数组元素个数,key为待查找元素{    int i=n;    a[0]=key;   //a[0]是监视哨    while(a[i]!=key)  //若数组中无key,则一定会得到a[0]=key        i--;    return i;     //查找失败返回0}

总目录

各查找和排序等算法一览

0 0