Search in Rotated Sorted Array
描述
Suppose a sorted array is rotated at some pivot unknown to you beforehand.
2.1 数组 5
(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).
You are given a target value to search. If found in the array return its index, otherwise return -1.
You may assume no duplicate exists in the array.
binary.h
#include<iostream>#include<assert.h>classSolution{public:intsearch(intA[],intn,intvalue){assert(A);intstart=0;intend=n-1;while(start<=end){intmid=(end-start)/2+start;if(A[mid]==value)returnmid;if(A[start]<=A[mid]){//ordersif(value<A[mid]&&value>=A[start])end=mid-1;elsestart=mid+1;}else{//disorderif(value>A[mid]&&value<=A[end])start=mid+1;else{end=mid-1;}}}return-1;}};
binary.cpp
#include"binary.h"usingnamespacestd;intmain(){inta[9]={7,8,9,0,1,2,4,5,6};Solutions1;cout<<s1.search(a,sizeof(a)/sizeof(a[0]),7)<<endl;cout<<s1.search(a,sizeof(a)/sizeof(a[0]),8)<<endl;cout<<s1.search(a,sizeof(a)/sizeof(a[0]),9)<<endl;cout<<s1.search(a,sizeof(a)/sizeof(a[0]),0)<<endl;cout<<s1.search(a,sizeof(a)/sizeof(a[0]),1)<<endl;cout<<s1.search(a,sizeof(a)/sizeof(a[0]),2)<<endl;cout<<s1.search(a,sizeof(a)/sizeof(a[0]),4)<<endl;cout<<s1.search(a,sizeof(a)/sizeof(a[0]),5)<<endl;cout<<s1.search(a,sizeof(a)/sizeof(a[0]),6)<<endl;cout<<s1.search(a,sizeof(a)/sizeof(a[0]),3)<<endl;system("pause");return0;}
运行结果:
以下是leetcode_cpp的代码:
我自己编的程序基本上和他给的一样,说明自己还是有进步的,嘻嘻。。。。继续加油!
<完>
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。