#include <iostream>
using namespace std;

#define LEN 12

int FindMinInRotateArray(int *arr, int len, int *min)
{
    if (arr == NULL || len <= 0 || min == NULL)
    {
        return -1;
    }

    if (len == 2)
    {
        *min = arr[1];
        return 1;
    }

    int mid = len/2;
    if (arr[0] < arr[mid])
    {
        FindMinInRotateArray(arr + len/2, len - len/2, min);
    }
    else
    {
        FindMinInRotateArray(arr, len/2 + 1, min);
    }
    return 1;
}

int main()
{
    int a[LEN] = {3, 4, 5, 6, 7, 8, 9, 10, -1, 0, 1, 2};
    int min = 0;
    FindMinInRotateArray(a, LEN, &min);
    cout<<"The min we've found is : "<<min<<endl;
    return 1;
}

 

相关文章:

  • 2021-11-08
  • 2021-06-04
  • 2021-11-12
  • 2021-11-12
  • 2022-02-11
  • 2021-05-17
  • 2021-07-31
猜你喜欢
  • 2021-10-23
  • 2021-11-03
  • 2021-09-01
  • 2021-05-18
  • 2021-06-16
  • 2022-12-23
  • 2021-11-07
相关资源
相似解决方案