顺序查找用于无序的数组,二分查找用于有序的数组。
基本思路:从表的一端开始,顺序扫描线性表,依次将扫描到的关键字和给定值k比较,若当前扫描的关键字与k相等,则查找成功;若扫描结束后,仍未发现关键字等于k的记录,则查找失败。
顺序查找简单直接,效率低!
C++代码如下:
#include <iostream>
using namespace std;
int SequentialSearch(int *a, const int n, const int x);
int main()
{
int m[] = {2,4,6,8,0,1,3,5,7,9};
int 结果;
int num = 75;
结果 = SequentialSearch(m,10,num);
if(结果 < 0)
cout << "没找到!" << endl;
else
cout << "在m[" << 结果 << "]里找到" << num << endl;
return 0;
}
int SequentialSearch(int *a, const int n, const int x)
{
int i;
for(i = 0; i < n; i++)
{
if(a[i] == x)
return i;
}
if(i==n) return -1;
}