顺序查找比较适合顺序文件,后者是指文件中所包含的记录在物理结构和逻辑结构中的排列顺序是一致的。
顺序查找算法描述,若顺序文件中有n条连续纪录,可以将这些纪录读到内存的一个顺序中进行操作。顺序查找就是在文件的关键字集合key[1,,,n]中找到值为给定值的那条纪录k。
这种顺序查找的方法非常简单直观,步骤如下:
- 从文件的第一个纪录开始,将每个纪录的关键字与给定的关键字进行比较
- 如果查找的某个纪录的关键字和要查找k的关键字相等,则查找成功并返回该纪录在文件中的位置。如果文件中的所有纪录都已遍历查找,还未发现与k相等纪录,则返回0,表示该查找失败。
算法实例:
//
// main.cpp
// SeqSearch
//
// Created by 胡士伟 on 16/6/8.
// Copyright © 2016年 胡士伟. All rights reserved.
//
#include <iostream>
using namespace std;
int SeqSearch(int data[],int n,int key);
int main(int argc, const char * argv[]) {
// insert code here…
int a[7]={43,23,53,29,43,7,43};
int k;
int s=sizeof(a)/sizeof(a[0]);
if((k=SeqSearch(a,s,43))==0)
{
cout<<“当前数组没有要查找的元素“<<endl;
}
else
{
cout<<“在数组第“<<k<<“下标位置找到“<<23;
}
return 0;
}
int SeqSearch(int data[],int n,int key)
{
data[0]=key;
int i;
for(i=n-1;i>=0;i–)
{
if (data[i]== data[0])
{
return i;
}
}
return i;
}
//实验结果如下:
在数组第6下标位置找到23Program ended with exit code: 0