顺序查找算法实现(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;
}

备注:

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

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

    原文作者:查找算法
    原文地址: https://blog.csdn.net/lfz_sau/article/details/46883617
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞