每天一題(2)--旋轉陣列求最小值
題目:有一個迴圈陣列有序陣列A,如{7,8,9,0,1,2,3,4,5,6},求其最小值。
給定一個遞增有序數列,經過旋轉
例如陣列{3,4,5,1,2}為通過{1,2,3,4,5}旋轉得到的
接著我們可以找到陣列中間的元素,如果該元素小於等於end指標所指值
那麼中間元素位於後面的子序列,則最小元素應該位於中間元素的前面或是自己;
如果該中間元素大於start指標所指值,那麼該元素應該屬於前面子序列,最小值應該
位於中間元素的後面
#include<stdio.h>
#include<iostream>
int Binary_Search(int numbers[], int start, int end)
{
int indexS = start;
int indexE = end;
int indexM =0;
while (indexS < indexE)
{
if(indexE - indexS==1)
{
indexM = indexE;
break;
}
indexM = (indexS + indexE)/2;
if(numbers[indexM]<=numbers[indexE]) //後面子序列
indexE = indexM;
if(numbers[indexM]>=numbers[indexS]) //前面子序列
indexS = indexM;
}
return indexM;
}
int main()
{
int numbers[] = {3,4,5,1,2};
int length = sizeof(numbers)/sizeof(int);
int indexM= Binary_Search(numbers,0,length-1);
printf("%d\n",numbers[indexM]);
getchar();
return 1;
}
相關文章
- 【劍指offer】旋轉陣列的最小值陣列
- 演算法學習-查詢旋轉陣列的最小值演算法陣列
- 153. 尋找旋轉排序陣列中的最小值排序陣列
- LintCode 尋找旋轉排序陣列中的最小值 II排序陣列
- 153. 尋找旋轉排序陣列中的最小值(中)排序陣列
- LeetCode每日一題: 旋轉陣列(No.189)LeetCode每日一題陣列
- LeetCode-153-尋找旋轉排序陣列中的最小值LeetCode排序陣列
- 【LeetCode】153. 尋找旋轉排序陣列中的最小值LeetCode排序陣列
- JavaScript 專題之如何求陣列的最大值和最小值JavaScript陣列
- [JAVA]陣列旋轉輸出Java陣列
- 旋轉變換(一)旋轉矩陣矩陣
- 求陣列之和,最小值,最大值,平均值陣列
- 每日一道演算法:旋轉陣列演算法陣列
- LC 189. 旋轉陣列陣列
- 旋轉陣列中的最小元素陣列
- 演算法求陣列中的最大值最小值演算法陣列
- 每天一道演算法題:求兩個排序陣列的中位數演算法排序陣列
- lisp 習題 矩陣旋轉Lisp矩陣
- 1452: 陣列最小值陣列
- LeetCode 189 旋轉陣列LeetCode陣列
- Lintcode 恢復旋轉陣列陣列
- 陣列1——求一個陣列的最大子陣列陣列
- 我請大家來刷題:旋轉陣列的最小數字陣列
- LeetCode-189-旋轉陣列LeetCode陣列
- 【LeetCode】189. 旋轉陣列LeetCode陣列
- 旋轉矩陣矩陣
- 矩陣旋轉矩陣
- 劍指offer:旋轉陣列的最小數字陣列
- LeetCode 33——搜尋旋轉排序陣列LeetCode排序陣列
- 圖解:什麼是旋轉陣列(Rotate Array)?圖解陣列
- 劍指offer 旋轉陣列的最小數字陣列
- 力扣·33. 搜尋旋轉排序陣列力扣排序陣列
- 演算法學習記錄七(C++)--->二分法找有序旋轉陣列最小值演算法C++陣列
- 圖形學 旋轉與投影矩陣—2矩陣
- leetCode33搜尋旋轉排序陣列LeetCode排序陣列
- LeetCode 81——搜尋旋轉排序陣列 IILeetCode排序陣列
- LeetCode33 搜尋旋轉排序陣列LeetCode排序陣列
- LeetCode#33搜尋旋轉排序陣列LeetCode排序陣列