写正确程序需要注意的地方:一个数组是有一个递减数列座椅若干位形成的,在这种数组中查找某一个数。
2014-03-04 12:13
465 查看
//4,3,2,1,10,9,8,7,6,5 int searchInRotateSortedArray(int* arr, int count, int value) { if (count<=0 || arr==NULL) return -1; int mid; int left=0; int right=count-1; while (left<=right) { //left和right为查找值的情况比较难控制。在此直接给出结果。 if (arr[left]==value) return left; else if (arr[right]==value) return right; mid=(left+right)/2; if (arr[mid]==value) { return mid; } else if (arr[mid]<value) { //value 和 mid大小顺序与正常的排列颠倒 if (arr[mid]<arr[left] && arr[mid]<arr[right] && value>arr[left] && value>arr[right]) left=mid+1; else right=mid-1; } else if (arr[mid]>value) { //value 和 mid大小顺序与正常的排列颠倒 if (arr[mid]>arr[left] && arr[mid]>arr[right] && value<arr[left] && value<arr[right]) right=mid-1; else left=mid+1; } } return -1; }
相关文章推荐
- 【编程题目】一个数组是由一个递减数列左移若干位形成的,在这种数组中查找某一个数。☆
- 一个数组是由一个递减数列左移若干位形成的,比如{4,3,2,1,6,5}是由{6,5,4,3,2,1}左移两位形成的,在这种数组中查找某一个数。
- 48.微软: 一个数组是由一个递减数列左移若干位形成的,比如{4,3,2,1,6,5} 是由{6,5,4,3,2,1}左移两位形成的,在这种数组中查找某一个数。
- 一个数组是由一个递减数列左移若干位形成的,比如{4,3,2,1,6,5} 是由{6,5,4,3,2,1}左移两位形成的,在这种数组中查找某一个数
- 一个数组是由一个递减数列左移若干位形成的,比如{4,3,2,1,6,5}是由{6,5,4,3,2,1}左移两位形成的,在这种数组中查找某一个数
- 算法习题48:一个数组是由一个递减数列左移若干位形成的,在这种数组中查找某一个数。
- 一个数组是由一个递减数列左移若干位形成的,比如{4,3,2,1,6,5}是由{6,5,4,3,2,1}左移两位形成的,在这种数组中查找某一个数。
- 48 一个数组是由一个递减数列左移若干位形成的,然后查找某一个数
- 写正确程序需要注意的地方:输入一个正数n,输出所有和为n连续正数序列。
- 写正确函数需要注意的地方:子数组的最大和
- 写正确函数需要注意的地方:最长递减子序列
- 写正确函数需要注意的地方:二分查找
- 一个班有n个学生,需要把每个学生的简单资料(姓名和学号)输入计算机保存。然后可以通过输入某一学生的姓名查找其有关资料。当输入一个姓名后程序就查找该班有无此学生,如果有,则输出他的姓名和学号,如果找不到
- 一个数组是由一个递减数列左移,查找一个数
- 一个数组由递减数列左移若干位形成,比如{4,3,2,1,6,5}是由{6,5,4,3,2,1}左移两位形成的,在数组中查找某数
- 写正确函数需要注意的地方:给定一个十进制整数N,计算从1开始到N的所有整数出现的“1”的个数
- 写正确函数需要注意的地方:输入两个整数n和m,从数列1,2,3,...n中随意取几个数,使其和为m,列出所有可能组合
- 二分查找,要注意的地方--写一个正确的二分查找,并不简单
- 写正确函数需要注意的地方:输入一个字符串,打印出该字符串中字符的所有排列
- C++中string的连续加法需要注意的一个地方