二分查找的非递归实现
来源:互联网 发布:编程语言pascal 编辑:程序博客网 时间:2024/05/08 22:24
非递归实现易于理解,对于二分查找不做过多的解释,相对来讲逻辑简单一点对于二分查找同样是基于分治法的思想#include <iostream>#include<algorithm>#include<stdio.h>#include<stdlib.h>using namespace std;class BinarySearch{public : //递归算法实现二分查找 int Search(int arr[],int n,int object) { int low=0; int high=n-1; while(low<=high) { int middle =(low+high)/2; if(object==arr[middle]) return middle; else if(object>arr[middle]) low=middle+1; else high=middle-1; } return -1; }//冒泡排序 void Sort(int arr[],int n) { int temp; for(int i=0; i<n-1; i++) for(int j=0; j<n-i-1; j++) { if(arr[j]>arr[j+1]) { temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } void output(int arr[],int n) { for(int i=0;i<n;i++) { cout<<arr[i]<<" "; } }};int main(){ int n; int arr[5000]; int position; BinarySearch a; cout<<"请输入数组中的元素个数\n"; cin>>n; for(int i=0; i<n; i++) cin>>arr[i]; a.Sort(arr,n); a.output(arr,n); int object; cout<<"请输入要查找的目标数字\n"; cin>>object; position = a.Search(arr,n,object); if(position!=-1) { cout<<"所寻找元素的下标是"<<position<<endl; cout<<"该元素是"<<arr[position]<<endl; }else { cout<<"没找到钙元素\n"; } return 0;}
0 0
- 二分查找的非递归实现
- 二分查找的C++非递归实现
- 二分查找的非递归实现
- 二分查找的非递归实现
- 二分查找的非递归实现
- 一个递归和非递归实现二分查找的代码
- C++数据结构--二分查找的递归和非递归实现
- 二分查找的递归与非递归实现
- 二分查找的递归与非递归实现
- C++ 二分查找的递归与非递归实现
- 二分查找算法的递归与非递归实现
- 二分查找法的递归和非递归实现
- 二分查找的非递归与递归实现
- 二分查找的递归与非递归实现
- 二分查找的非递归和递归例程实现
- 二分查找的递归和非递归实现
- 二分查找的递归与非递归实现
- 二分查找的递归和非递归实现
- pregel
- Oracle 12c Study之--Enterprise Manager Cloud Control Install
- 笔记:String常用的操作方法
- ADF(UI)--在<af:table>里多行编辑时去掉必填字段的验证提示
- One Boam技巧 有关十字行列
- 二分查找的非递归实现
- 静态代理和动态代理
- BootstrapSouce的排版+响应式导航
- ListView中CheckBox复用问题
- 黑盒测试——错误推测法
- Android_project目录及文件详解
- 【学习笔记】快速平方根倒数算法
- 数控进入数控显示实体四轴四面Cube应用软件开发
- curl模拟请求、登陆以及带验证码登陆