把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转。判断旋转数组中是否存在某个数。
对于有序数组查找,我们肯定会想到二分查找法,这个问题就是复杂情况下的二分查找:
我们二分数组得到a[mid]
(1) a[mid] > a[l] 且 a[mid] > a[r],则a[mid]位于左边升序数组中。
(2) a[mid] < a[l] 且 a[mid] < a[r],则a[mid]位于右边升序数组中。
(3) a[mid] > a[l] 且 a[mid] < a[r],则只有一个升序数组中。
原文:https://www.cnblogs.com/xumaomao/p/11323786.html