查找----线性表的查找
来源:互联网 发布:mac怎么打包照片 编辑:程序博客网 时间:2024/04/30 07:07
#include <iostream> //引入输入输出流using namespace std;int BinSearch1(int r[ ], int n, int k)//查找非递归算法{int low=1, high=n,count=0; //设置初始查找区间while (low<=high) { int mid=(low+high)/2; //取中间点, 比较k与r[mid], if (k<r[mid]){high=mid-1;} if (k>r[mid]){low=mid+1;}if(k==r[mid]){count++;cout<<"比较次数为:"<<count<<endl; //查找成功return mid;}count++;}cout<<"比较次数为:"<<count<<endl;return 0;//查找失败}int BinSearch2(int r[], int low, int high, int k,int count)//查找递归算法{if (low>high){ cout<<"比较的次数为:"<<++count<<endl;return 0; //递归的边界条件}else { int mid=(low+high)/2;if (k<r[mid])return BinSearch2(r, low, mid-1, k,++count); //查找在左半区进行if (k>r[mid])return BinSearch2(r, mid+1, high, k,++count); //查找在右半区进行 if (k==r[mid]){cout<<"比较的次数为:"<<++count<<endl;return mid;} }}void main(){int s[14]={0,7,14,18,21,23,29,31,35,38,42,46,49,52};cout<<"有序表中的元素为:"<<endl;for(int i=1;i<14;i++){cout<<s[i]<<" ";}cout<<"\n"<<"查找14,结果为:"<<endl;cout<<"所在位置为:"<<BinSearch1(s,13,14)<<endl;cout<<"\n"<<"查找22,结果为:"<<endl;cout<<"所在位置为:"<<BinSearch1(s,13,22)<<endl;int count=0;cout<<"\n"<<"对18执行查找操作,结果为:\n"; //查找成功cout<<"所在位置为:"<<BinSearch2(s,1,13,18,count)<<endl;cout<<"\n"<<"对45执行查找操作,结果为:\n"; //查找失败cout<<"所在位置为:"<<BinSearch2(s,0,12,45,count)<<endl;}
0 0
- 查找----线性表的查找
- 线性表的查找
- 线性表的查找-顺序查找
- 线性表的查找-二分查找
- 线性表的查找-分块查找
- 查找——线性表的查找
- 查找一 线性表的查找
- 查找技术---线性表查找技术的顺序表查找
- 线性表的查找操作(线性表的顺序查找、二分查找、分块查找)
- 线性表的顺序查找
- 线性表的顺序查找
- 算法-线性表的查找
- 算法-查找-线性表的查找(顺序查找,二分查找,分块查找)
- 线性表的查找(顺序查找,二分查找,分块查找)
- 查找——线性表的折半法查找
- 查找算法复习——线性表的查找
- 基于线性表的查找:二分查找-Binary Search
- 线性表查找
- C#利用TcpListener和TcpClient类实现服务器和客户端的通信
- 内存泄露如何解决?
- WM_ACTIVATE窗口激活消息
- 伸展树学习
- hibernate和mybatis思想,区别,优缺点
- 查找----线性表的查找
- 由过去的某一时间,计算距离当前的时间(Java实现)
- 数据结构—二叉树练习—递归
- Android进阶专题七:多核处理器优化
- 《虚无的十字架》---作者东野圭吾 读后感
- html中的语义相关元素介绍
- 数组的基础知识
- CF Bear and Game
- 修改mysql的用户的密码