左旋数组中二分查找
来源:互联网 发布:平价护手霜 知乎 编辑:程序博客网 时间:2024/04/30 08:26
#include <stdio.h>#include <stdlib.h>int binary_search_in(int a[], int n, int x){int left = 0;int right = n-1;while(left <= right){int mid = left + ((right - left)>>1);if(a[mid] == x)return mid;if(a[mid] >= a[left]) //左边有序{if(x < a[mid] && x >= a[left]){right = mid - 1;}else{left = mid + 1;}}else //右边有序{if(x > a[mid] && x <= a[right]){left = mid + 1;}else{ right = mid - 1;}}}return -1;}int main(){int a[] = {9,10,15,1,3,7};printf("%d",binary_search_in(a, 6, 10) );system("pause");}
先检查mid是否相同,否则的话,mid左右至少有一个有序区域,然后在有序区域中的查找是否存在。
0 0
- 左旋数组中二分查找
- 二维数组中二分查找
- java数组中二分查找Demo范例
- 微软等数据结构+算法面试100题(39)-- 左旋数组中查找
- 二分查找思想寻找有序数组中查找最小值
- 二分查找(有序数组中查找需要的数)
- 数组-二分查找
- 二分查找 字符串数组
- 数组与二分查找
- 数组(二分查找)
- 二分查找、数组合并
- 二分查找,数组
- 数组-二分查找
- 数组-二分查找
- 二维数组二分查找
- [数组]二分查找算法
- 数组---二分查找
- 数组二分查找
- C#中ManagementClass获取本机信息
- FreeMarker与SpringMVC整合实例代码教程
- android 蓝牙打印机
- [转]搜狐2012.9.15校园招聘会笔试题
- Sqlite命令行查看数据库中的内容
- 左旋数组中二分查找
- 常用定义
- 【cocos2dx 3.2】2048
- ubuntu终端分屏
- IOS 常用技术总汇
- avr c语言开发环境搭建
- SQLite数据库增删改查操作
- 可任意自定义的UITableViewCell
- Cross Site Port Attacks - XSPA - Part 2