查找算法(一)顺序查找
2016-06-08 17:36
253 查看
顺序查找比较适合顺序文件,后者是指文件中所包含的记录在物理结构和逻辑结构中的排列顺序是一致的。
顺序查找算法描述,若顺序文件中有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
顺序查找算法描述,若顺序文件中有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
相关文章推荐
- 【备忘】WPF基础
- 八个不得不知的重要法则 让你更懂互联网
- Mac OS下terminal的快捷键
- 8天学通MongoDB
- Java中出现No enclosing instance of type XXX is accessible问题
- @NotEmpty、@NotBlank、@NotNull
- 数据溢出怎么办,别慌别慌,try_catch来帮忙
- Android四大组件
- Hadoop默认端口说明
- spring中MessageSource的配置使用方法--ResourceBundleMessageSource
- java关键字Transient
- 安装caffe
- BearSkill之UIView挖空处理
- android ROM设置默认Launcher(主屏幕应用)
- C与C++函数声明时的几个小的语法差异
- CSS 换行知多少: word-wrap && word-break && white-space && word-spacing
- cxgrid属性说明,每次用的时候费时费力查找。
- JavaScript高级程序设计 第六章 面向对象程序设计
- [NYIST16]矩形嵌套(DP,最长上升子序列)
- Android内存优化大全(二)