题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 我们注意到旋转之后的数组实际上可以划分为两个排序的子数组。 注意:旋转数组中包含两递增排序的子数组,有阴影背景的是第二个子数组。(a)把P1指向数组的第一个数字,P2指向数组的最后一个数字。由于P1和P2中间的数字5大于P1指向的数字,中间的数字在第一个子数组中。下一步把P1指向中间的数字。(b)P1和P2中间的数字1小于P2指向的数字,中间的数字在第二个子数组中。下一步把P2指向中间的数字。(c)P1和P2指向两个相邻的数字,则P2指向的是数组中的最小数字。 int Min(int * numbers, int length){ if(numbers == NULL || length <= 0) throw new std::exception("Invalid parameters"); int index1 = 0; int index2 = length -1; int...
Read more »