旋转有序数组的二分查找
来源:互联网 发布:java 在服务器生成pdf 编辑:程序博客网 时间:2024/04/20 14:06
将一个有序数组进行旋转,如0 1 2 4 5 6 7 -> 4 5 6 7 0 1 2,要求在旋转后的数组中查找某数,假定该数组中没有重复的数。
int find(int a[], int n, int k){ int left = 0; int right = n-1; while (left <= right) { int mid = left + (right-left)/2; if (k == a[mid]) { return mid; } if (a[left] <= a[mid]) { if (k < a[mid] && k >= a[left]) { right = mid - 1; } else { left = mid + 1; } } else { if (k <= a[right] && k > a[mid]) { left = mid + 1; } else { right = mid - 1; } } } return -1;}
进一步,要求找到旋转数组中的最小值。
int findMin(int a[], int n){ int left = 0; int right = n - 1; while (left < right) { int mid = left + (right-left)/2; if (a[mid] < a[right]) { right = mid; } else { left = mid + 1; } } return left;}
0 0
- 旋转有序数组的二分查找
- 旋转有序数组的二分查找
- 旋转有序数组的二分查找
- 循环有序数组/旋转数组的二分查找
- 旋转有序的二分查找
- 有序数组的二分查找
- 有序数组的二分查找
- 有序数组的二分查找
- 有序数组或者有序数组的旋转数组 查找最小值
- 旋转数组的二分查找
- 旋转数组的二分查找
- 旋转数组的二分查找
- 旋转数组的二分查找
- 旋转数组的二分查找
- 旋转数组的二分查找
- 旋转数组的二分查找
- 有序数组\二分查找
- 有序数组二分查找
- G - Tempter of the Bone
- swift学习记录(func)
- 读写SD卡需要在app的manifest中添加
- Ubuntu 14.04安装搜狗输入法
- 动态链表操作2
- 旋转有序数组的二分查找
- Arduino vs Raspberry Pi vs BeagleBone
- Linux 基础
- UIimage 图片的处理:缩放,设定大小,存储,截图
- iOS关联,objc_getAssociatedObject, objc_setAssociatedObject
- 安卓接口回调之我见-------仅是安卓小小鸟的见解
- zookeeper standalone模式安装
- 黑马程序员——IO流
- 运行报错:Unable to execute dex: java.nio.BufferOverflowException