查找-牛刀小试
来源:互联网 发布:centos 重命名文件夹 编辑:程序博客网 时间:2024/06/05 01:17
查找的基本概念
给定一个值k,在含有n个记录的表中找出关键字等于k的记录。若找到则返回该记录的的位置或信息,否则查找失败,返回相关的指示信息。
(一)顺序查找
思路:
元素没有顺序,因此要扫描整个数组中的所有元素,逐个与k比较
相等则查找成功,返回该元素位置
如果扫描结束没有发现和k相等的元素,返回0
int Search(int a[],int n,int k){ int i; for(i = 0; i < n; ++i){ if(a[i]==k){ return i; } } return 0;}
(二)折半查找
要求:
1.线性表必须是有序的
思路:
1.先确定要查找的区间a[low,high]
2.确定中间位置mid
3.将要查找的元素k与中间位置元素a[mid]做比较,若查找成功则返回该位置,否则重新确定查找区间
4.若a[mid]>k,则由表的有序性可知a[mid,…,high]均大于k,若表中存在关键字等于k的记录,则该记录只能在mid的左边,即a[low,…mid-1]
5.同理,若a[mid]
int BSearch(int a[],int low,int high,int k){ int mid; while(low <= high){ mid = (low + high) / 2; if(a[mid]==k){ return mid; }else if(a[mid] > k){//在a[low,mid-1]中找 high = mid - 1; } else{ low = mid + 1; } } return 0;}
注:代码已通过测试
0 0
- 查找-牛刀小试
- 牛刀小试!
- 牛刀小试
- 牛刀小试
- 牛刀小试
- 牛刀小试
- Ajax牛刀小试
- awk牛刀小试
- 牛刀小试iReport
- JNI,牛刀小试
- sigsuspend牛刀小试
- LoadRunner牛刀小试
- nodejs 牛刀小试
- JSF 牛刀小试
- CreateRemoteThread 牛刀小试
- Javascript牛刀小试
- Unity3D牛刀小试
- CTF牛刀小试
- jquery的常用操作
- redis和memcache的区别
- NavigationBar和UINavigationItem的区别和联系
- python学习笔记3
- java的数据类型
- 查找-牛刀小试
- Annotation-specified bean name 'drugInfoService' for bean class conflicts with existing
- Android:水波上升控件
- 分享一次调试bug遇到的问题及解决方法
- 阿里云Ubuntu环境搭建
- Java回调机制解析
- 385. Mini Parser
- Linux基础知识(1)
- Spring基础理论。