9.11排序与查找(三)——给定一个排序后的数组,包含n个整数,但这个数组已被旋转过多次,找出数组中的某个元素
来源:互联网 发布:尖锐湿疣不治知乎 编辑:程序博客网 时间:2024/05/16 18:32
/**
* 功能:给定一个排序后的数组,包含n个整数,但这个数组已被旋转过多次,次数不详。找出数组中的某个元素。
* 可以假定数组元素原先是按从小到大的顺序排列的。
*/
/** * 思路:数组被旋转过了,则寻找拐点。 * @param a * @param left * @param right * @param x:要搜索的元素 * @return */public static int search(int[] a,int left,int right,int x){int mid=(left+right)/2;if(x==a[mid])//找到元素return mid;if(left>right)return -1;if(a[left]<a[mid]){//左半边为正常顺序if(x>=a[left]&&x<=a[mid]){return search(a,left,mid-1,x);//搜索左半边}else{return search(a, mid+1, right, x);//搜索右半边}}else if(a[mid]<a[right]){//右半边为正常顺序if(x>=a[left]&&x<=a[mid]){return search(a,left,mid-1,x);//搜索左半边}else{return search(a, mid+1, right, x);//搜索右半边}}else if(a[left]==a[mid]){//左半边是重复元素if(a[mid]!=a[right]){//若右边元素不同,则搜索右边return search(a, mid+1, right, x);//搜索右半边}else{//否则两边都搜索int result=search(a, left, mid=1, x);if(result==-1){return search(a, mid+1, right, x);}elsereturn result;}}return -1;}
0 0
- 9.11排序与查找(三)——给定一个排序后的数组,包含n个整数,但这个数组已被旋转过多次,找出数组中的某个元素
- 给定一个排序后的数组,包含n个整数,但这个数组已被旋转过很多次,编写代码找出数组中的某个元素
- 程序员面试金典: 9.11 排序与查找 11.3找出已排序数组经过旋转后某个元素
- 【Java】找出数组中的某个元素,数组原本有序,但已被旋转多次
- 9.11排序与查找(五)——有个排序后的字符串数组,其中散布着一些空字符串,找出给定字符串的位置
- 查找已排序的旋转后的数组中的数(Search in Rotated Sorted Array)
- 中位数 21% 通过 给定一个未排序的整数数组,找到其中位数。 中位数是排序后数组的中间值,如果数组的个数是偶数个,则返回排序后数组的第N/2个数
- 程序员面试金典: 9.11 排序与查找 11.5有个排序后的字符串数组,其中散布这一些空字符串,编写一个方法,找出给定字符串的位置
- 输出一个为递增排序数组的旋转数组中的最小元素——8
- 求一个已排序旋转数组中的最小的数
- 数组排序:给定一个数组,将数组中的元素从小到大排序
- 一个具有N个元素的数组,找出数组中的第二大的数
- 给定一个未排序数组, 找出其中最长的等差数列
- 给定一个没有重复的已排序整数数组,返回其范围的摘要。
- 给定一个未排序的整数数组,找到其中位数。 中位数是排序后数组的中间值,
- 旋转排序数组查找
- 给定一个未排序的整数数组,找到第一个缺失的正整数 您的算法应在O(n)时间运行,并使用恒定空间。
- N个元素的数组中找出出现多于N/2次的数(主元素)
- CodeForces 555C Case of Chocolate(STL:map的使用)
- 九度 1101 - 字符串处理 - 计算表达式
- 初步篇11算术运算符与算术表达式项目5-坐标转换
- 算法初探
- 1077. Kuchiguse (20)
- 9.11排序与查找(三)——给定一个排序后的数组,包含n个整数,但这个数组已被旋转过多次,找出数组中的某个元素
- hdoj 2795 Billboard 【线段树 单点更新 + 维护区间最大值】
- SQL Server 维护计划备份主分区
- web service调用方式
- 修改主题Theme中默认颜色
- linux实现的802.1q vlan
- HDOJ 4857 逃生 (拓扑排序之邻接表加队列)
- 树莓派做web服务器(nginx、Apache)
- Centos7安装配制VSftp基本(一)