监视哨

监视哨可以防止越界,可以不必每次查找时都检查是否到末尾了.

 

前提条件: 0 元素不存内容,留出来存监视哨

 

 

/* 没有采用监视哨的算法 */
int SeqSearch(RecordList l, KeyType k)
{
    l.r[0].key = k;
    i = l.length;

    while (i>=1 && l.r[i].key != k)    // 每次需要循环判断i是否越界
        i–;
    
    if (i>=1)
        return i;
    else
        return 0;    // 返回0表示没找到
}

/* 采用了监视哨的算法 */
intSeqSearch(RecordList l, KeyType k)
{
    l.r[0].key = k;
    i = l.length;

    while (l.r[i].key != k)    // 不仅省去了每次的判断,且找不到的话,也是可以返回0
        i–;
    
    return i;
}

 

文章知识点与官方知识档案匹配,可进一步学习相关知识算法技能树首页概览34652 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2015年1月15日
下一篇 2015年1月15日

相关推荐