2.1.4—线性表—Search in Rotated Sorted Array II

来源:互联网 发布:mysql5.7 内存优化 编辑:程序博客网 时间:2024/05/16 04:53
描述
Follow up for ”Search in Rotated Sorted Array”: What if duplicates are allowed?
Would this affect the run-time complexity? How and why?

Write a function to determine if a given target is in the array.

#include<iostream>using namespace std;int FindNumRotatedArray(int a[], int n, int value){if (a == NULL || n <= 0)return -1;int begin = 0;int end = n - 1;while (begin <= end){int mid = (begin + end) / 2;if (a[mid] == value)return mid;if (a[mid] > a[begin]){if (a[begin] <= value&&value < a[mid])end = mid - 1;elsebegin = mid + 1;}else if (a[mid] < a[begin]){if (a[mid] < value &&value <= a[end])begin = mid + 1;elseend = mid - 1;}else{begin++;}}return -1;}void main(){const int n = 10;int value = 6;int a[10] = { 6, 7, 9, 10, 13, 24, -1, 0, 6, 6 };int index = FindNumRotatedArray(a, n, value);if (index != -1)cout << a[index] << endl;}


原创粉丝点击