查找——线性表顺序查找算法
来源:互联网 发布:dede上传网站源码 编辑:程序博客网 时间:2024/05/01 12:43
/**Copyright (c) 2015 , 烟台大学计算机学院*All right resvered .*文件名称: 线性表顺序查找算法.cpp*作 者: 郑兆涵*查找——线性表顺序查找算法*/
问题:对线性表顺序查找算法进行分析
编程代码:
//线性表顺序查找算法#include <stdio.h>#define MAXL 100typedef int KeyType;typedef char InfoType[10];typedef struct{ KeyType key; //KeyType为关键字的数据类型 InfoType data; //其他数据} NodeType;typedef NodeType SeqList[MAXL]; //顺序表类型int SeqSearch(SeqList R,int n,KeyType k){ int i=0; while (i<n && R[i].key!=k) //从表头往后找 i++; if (i>=n) return 0; else return i+1;}int main(){ int i,n=10; int result; SeqList R; KeyType a[]= {2,3,1,8,5,4,9,0,7,6},x=9; for (i=0; i<n; i++) R[i].key=a[i]; result = SeqSearch(R,n,x); if(result>0) printf("序列中第 %d 个是 %d\n",result, x); else printf("木有找到!\n"); return 0;}
输出结果:
学习心得:
被查找的对象是由一组元素组成的表或文件,而每个元素由若干哥数据项组成,假设每个元素都有一个能唯一标识该元素的关键字,在这种条件下,查找的定义是:给定一个值k,在含有n个元素的表中找出关键字等于k的元素.若找到,则查找成功,返回该元素的信息或该元素在表中的位置;否则查找失败,返回相关的指示信息.
线性表顺序查找算法分析:
查找与数据的存储有关,线性表{a1,a2,....,an}有顺序和链式两种存储结构.作为顺序表存储时实现顺序查找算法.顺序查找是一种最简单的查找方法.它的基本思路是:从表的一端开始,顺序扫描线性表,依次将扫描到的关键字和给定值k相比较,若当前扫描到的关键字与k值相等,则查找成功;若扫描结束,扔未找到关键字等于k的元素,则查找失败.顺序查找算法(在顺序表R[0..n-1]中查找关键字为k的元素,成功是返回找到的元素的逻辑序号,失败时返回0):
#define MAXL 100typedef int KeyType;typedef struct{ KeyType key; //KeyType为关键字的数据类型 InfoType data; //其他数据} NodeType;typedef NodeType SeqList[MAXL]; //顺序表类型<pre name="code" class="cpp">int SeqSearch(SeqList R,int n,KeyType k){ int i=0; while (i<n && R[i].key!=k) //从表头往后找 i++; if (i>=n) return 0; else return i+1;}
首先定义顺序表的类型,再定义一个SeqSearch()函数实现顺序查找.在SeqSearch(SeqList R,int n,KeyType k)中,其中是在具有n个数据元素R的SeqList中查找值为k的过程.在函数进行运算过程中,首先是通过while判断,当i<n个数据元素的时候,并且R[i].key!=k,也就是说当i在数组规定的长度内,并且当关键字的值不等于k的时候,进行循环i++.最后再进行判断当i>=n的时候,返回0,失败;当i<n时也就是找到了R[i].key=k,则返回i+1,i为逻辑顺序,则返回i+1是得到了物理顺序.此成功时的平均查找长度为O(n).
- 查找——线性表顺序查找算法
- 算法-查找-线性表的查找(顺序查找,二分查找,分块查找)
- 查找算法复习——线性表的查找
- 【数据结构线性表查找】——顺序查找和折半查找详解和代码
- 查找算法——顺序查找
- 线性表的查找-顺序查找
- 算法-->线性表查找
- c查找算法——顺序表
- 数据结构例程——线性表的顺序查找
- 大话数据结构—顺序表、有序表、线性索引查找
- 线性表的顺序查找
- 线性表的顺序查找
- 查找——线性表的查找
- 【查找算法】——顺序查找、折半查找、分块查找(索引查找)
- 顺序表查找算法
- 顺序表查找算法
- 查找技术---线性表查找技术的顺序表查找
- 9.2 线性查找(顺序查找)
- C-045.结构体指针
- 仿微信二维码的制作
- linux utils
- Android: 属性服务
- Python爬虫入门三之Urllib库的基本使用
- 查找——线性表顺序查找算法
- GPU 编程入门到精通(二)之 运行第一个程序
- java 归并排序
- Sudoku By JS
- CacheBrowser:利用CDN内容缓存上网
- android(24)(用java实现多线程断点下载)
- ====Scroll包裹的List View中监听Scroll
- Android中Bitmap和Drawable
- UI基础-网络编程