有序数组的二分查找
来源:互联网 发布:手机编写c语言的软件 编辑:程序博客网 时间:2024/04/18 05:43
循环算法实现:
#include <iostream>using namespace std;//前闭后闭区间int BinarySearch(int* array, int size, int data){ int left = 0; int right = size-1; int mid = 0; while(left <= right) { mid = left + ((right - left)>>1); if(array[mid] == data) return mid; //找到返回下标 else if(array[mid] > data) right = mid-1; else left = mid+1; } return -1; //未找到返回-1}void FunTest(){ int array[10] = {1,2,3,4,5,6,7,8,9,10}; int ret = BinarySearch(array, sizeof(array)/sizeof(array[0]), 7); cout<<ret<<endl;}int main(){ FunTest(); system("pause"); return 0;}
递归算法实现:
#include <iostream>using namespace std;int BinarySearch(int* array, int left, int right, int data){ if(left <= right) { int mid = left + ((right - left)>>1); if(array[mid] == data) return mid; //找到返回下标 else if(array[mid] < data) return BinarySearch(array, mid+1, right, data); else return BinarySearch(array,left, mid-1, data); }}void FunTest(){ int array[10] = {1,2,3,4,5,6,7,8,9,10}; int ret = BinarySearch(array, 0, (sizeof(array)/sizeof(array[0]))-1, 7); cout<<ret<<endl;}int main(){ FunTest(); system("pause"); return 0;}
0 0
- 有序数组的二分查找
- 有序数组的二分查找
- 有序数组的二分查找
- 有序数组\二分查找
- 有序数组二分查找
- 有序 循环数组的二分查找
- 旋转有序数组的二分查找
- 有序数组的二分查找程序
- 9.5-字符串有序数组的二分查找
- 对于有序数组的二分查找算法
- 旋转有序数组的二分查找
- 基于有序数组的二分查找
- 旋转有序数组的二分查找
- 二分数组的扩展:二分查找循环有序数组
- 有序数组中的二分查找
- 有序数组之二分查找
- 二分查找(有序数组中查找需要的数)
- 循环有序数组/旋转数组的二分查找
- 关于unity build后的unity_builtin_extra很大的问题
- 微信小程序之绑定点击事件
- css禁止选中文本
- js 定时器
- caffe源码剖析(一)--整体目录结构
- 有序数组的二分查找
- 关于框架的一些问题
- Java基础回顾
- maven环境搭建
- 二叉树的最小深度
- hdu2045
- 高精度加法
- 机器学习&数据挖掘笔记(常见面试之机器学习算法思想简单梳理)
- 三种常见的替代损失函数