顺序查找算法实现(C++)

顺序查找适用情况:  

1、 对静态查找表中的记录无任何要求

2、 数据量较小

时间复杂度:O(n)

代码(C++)如下(可直接运行):

#include <stdio.h>
#include <iostream>
using namespace std;
void Sequential_Search(int *a, int n, int key)
{
    int i = n;
    a[0] = key;  //哨兵
    while (a[i] != key)
    {
        i--;
    }
    if (0 == i) 
        cout << "Search failed!" << endl;
    else
    {
        cout << "Search success!" << endl;
        cout << "pos = " << i << endl;
    }
}
int _tmain(int argc, _TCHAR* argv[])
{
        int a[5] = {12, -2, 30, 4, 8};
        Sequential_Search(a, 5, -20);
        
        system("pause");
        return 0;
}
备注:

在查找方向的尽头放置“哨兵”是一种很好的编程技巧,“哨兵”既可以放置在数组的开头

 也可以放置在数组的结尾。在数据量较大时,这一技巧对效率提升会很大。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值