二分查找算法实现
来源:互联网 发布:node fs模块 编辑:程序博客网 时间:2024/05/21 18:04
#include <iostream>
#include<algorithm>
using namespace std;
#define N 20
#include<algorithm>
using namespace std;
#define N 20
int binary_chop(int a[],int n,int j,int k){//二分查找算法
int low,high,mid;
low=1;high=n;
while(low<=high){
mid=(low+high)/2;
if(a[mid]==k) {j=mid;break;} //找到即返回下标
else if(a[mid]>k)high=mid-1; //寻找的值小于中间值,则在左边一般查找
else low=mid+1; //寻找的值大于中间值,则在右边一半查找
}
return j; //返回k的下标值,找不到返回0
}
int main(int argc, char** argv) {
int a[N];
int n; cin>>n;//定义问题的规模大小,并由用户输入问题规模大小,即数组长度;
int W;cin>>W;//输入要寻找的数
for(int i=1;i<=n;i++){
cin>>a[i];
}//输入数组元素;
sort(a+1,a+n+1); //对数组进行排序
// for(int i=1;i<=n;i++){ //输出排序后的数组元素,用于检测
// cout<<a[i];
// }//输出数组元素;
cout<<binary_chop(a,n,0,W);
return 0;
}
int low,high,mid;
low=1;high=n;
while(low<=high){
mid=(low+high)/2;
if(a[mid]==k) {j=mid;break;} //找到即返回下标
else if(a[mid]>k)high=mid-1; //寻找的值小于中间值,则在左边一般查找
else low=mid+1; //寻找的值大于中间值,则在右边一半查找
}
return j; //返回k的下标值,找不到返回0
}
int main(int argc, char** argv) {
int a[N];
int n; cin>>n;//定义问题的规模大小,并由用户输入问题规模大小,即数组长度;
int W;cin>>W;//输入要寻找的数
for(int i=1;i<=n;i++){
cin>>a[i];
}//输入数组元素;
sort(a+1,a+n+1); //对数组进行排序
// for(int i=1;i<=n;i++){ //输出排序后的数组元素,用于检测
// cout<<a[i];
// }//输出数组元素;
cout<<binary_chop(a,n,0,W);
return 0;
}
1 0
- 二分查找算法实现
- 二分查找算法实现
- 二分查找算法递归实现
- 二分查找算法的实现
- Java实现二分查找算法
- 实现二分查找的算法
- java 二分查找算法实现
- 二分查找算法java实现
- JS实现二分查找算法
- 二分查找算法的实现
- Python实现二分查找算法
- C++实现二分查找算法
- 二分查找算法----java实现
- 递归算法实现二分查找
- 二分查找算法的实现
- 算法:C++实现二分查找
- C++实现二分查找算法
- 二分查找算法的实现
- mysql查询今天、昨天、本周、本月、上一月 、今年数据
- 排序算法
- 利用filter()滤掉非回数
- 【CS 20SI】TensorFlow for Deep Learning Research Lecture note 2: TensorFlow Ops
- ArrayList-数组集合
- 二分查找算法实现
- 站在讲台上的时候,我怕我会心虚
- 函数中的私有变量和特权方法
- Python调用OpenCV的接口
- <Effective Mordern C++>笔记:Item 1: Understand the template type deduction.
- ROS 学习系列 -- 树莓派编译安装完整版本ROS
- 利用锚点制作简单索引效果
- Android-Fragment(1)简单实现
- 文章标题