折半查找的递归算法
来源:互联网 发布:360软件小助手独立 编辑:程序博客网 时间:2024/05/29 15:02
大家好呀~我是一个大一的学生,计算机专业。一直在学习代码,可是以前都没有过记录和总结,感到可惜,所以这次开了个博客,专门用来记录我写的好的代码。
可能很多地方做得不好,希望大家给我意见。
这个算法是用C++写的折半查找的算法,用的是递归算法。
//算法 折半查找的递归算法 #include<iostream>using namespace std;#define MAXSIZE 100#define OK 1;typedef struct{int key;//关键字域}ElemType;typedef struct{ElemType *R;int length;}SSTable;int InitList_SSTable(SSTable &L){L.R=new ElemType[MAXSIZE];if (!L.R){cout<<"初始化错误";return 0;}L.length=0;return OK;}int Insert_SSTable(SSTable &L) {int j=1;for(int i=1;i<MAXSIZE;i++){L.R[i].key=j;L.length++;j++;}return 1;}int MySearch_Bin(SSTable ST,int key,int low,int high) { // 在有序表ST中折半查找其关键字等于key的数据元素。若找到,则函数值为 // 该元素在表中的位置,否则为0 int mid; if(low <=high) { mid=(low+high) / 2; if(key==ST.R[mid].key) return mid; else if(key <ST.R[mid].key) { high=mid-1; MySearch_Bin(ST,key,low,high); } else{low =mid+1;MySearch_Bin(ST,key,low,high); } } }// Search_Binvoid Show_End(int result,int testkey){if(result>100)cout<<"未找到关键字: "<<testkey<<endl;elsecout<<"找到"<<testkey<<"位置为: "<<result<<endl;return;}int main( ){SSTable ST;InitList_SSTable(ST);Insert_SSTable(ST);int testkey1,testkey2;cout<<"请依次输入两个关键字(用回车隔开): ";cin>>testkey1; cin>>testkey2; int result;int low=1;int high=ST.length;//置查找区间初值result=MySearch_Bin(ST, testkey1,low,high);Show_End(result,testkey1);result=MySearch_Bin(ST, testkey2,low,high);Show_End(result,testkey2);}
0 0
- 递归的折半查找算法
- 折半查找的递归算法
- 递归的折半查找算法
- 折半查找的递归算法
- 折半查找的递归算法
- 折半查找(递归算法)
- 有序表折半查找的递归算法
- 验证算法(递归的折半查找)
- 递归的折半查找
- 折半查找法的递归与非递归算法
- 折半查找的递归算法和非递归
- 二分查找的递归算法(折半查找)
- 验证算法——递归的折半查找算法
- 项目1.1.2 递归的折半查找算法
- 折半查找的递归实现
- Java实现折半查找(二分查找)的递归和非递归算法
- Java实现折半查找(二分查找)的递归和非递归算法
- Java实现折半查找(二分查找)的递归和非递归算法
- git创建与管理远程分支
- 软件工程项目的基本目标
- 冲
- 关于JDK1.8中Arrays无法导入到Eclipse的最简单解决方式
- 第13周项目3-形状类族中的纯虚函数
- 折半查找的递归算法
- [从头读历史] 第249节 易经
- Redex与AndResGuard的针对APK缩减的比较
- 手把手教你用github pages搭建博客 最新版
- Jstorm,RocketMq,Tair浅谈
- 软件生命周期
- 关于int8_t int64_t size_t ssize_t的相关问题
- poj之旅——1759
- shell 中的特殊符号的含义---留着以后自己查看