陣列2 旋轉陣列的最小值

2021-07-15 15:09:10 字數 981 閱讀 6253

package com.exe2.offer;

/** * 【題目】輸入乙個遞增排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。

* 【思路】:①正常情況下可利用二分法進行查詢;

* ②特殊情況,要用順序查詢。

* @author wgs

* */

public class searchminnuminspinarray catch (exception e)

}//定義指標

int preindex=0;

int endindex=arrs.length-1;

int midindex=preindex;//此處不宜直接設為0,因為當判斷到要求將陣列前0個元素旋轉時,第乙個元素 即為最小值(不一定是0)

//預設是遞增的排序

while(arrs[preindex]>=arrs[endindex])

if(arrs[midindex]>=arrs[preindex])else if(arrs[midindex]<=arrs[preindex])

//判斷下是否前後指標相遇,相遇後指標所指即為最小值

if(endindex-preindex==1)

}return arrs[midindex];

}//順序查詢法

public int mininorder(int arrs,int preindex,int endindex)

}return result;

}public static void main(string args) ;//新建乙個旋轉後的陣列3,4,5,1,2

searchminnuminspinarray s=new searchminnuminspinarray();

int min=s.getminnum(arrs);

system.out.println("最小值是"+min);

}}

旋轉陣列的最小值

題目 把乙個陣列的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個遞增排序的陣列的乙個旋轉,輸出旋轉陣列的最小值。例如陣列為的乙個旋轉,該陣列的最小值為1。解析 1 我們可以用順序查詢的方法找到陣列中的最小值,但是這個方法沒有用到旋轉陣列區域性有序的特點。2 和二分查詢法一樣,我們用兩個指標...

旋轉陣列的最小值

把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個非遞減排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。例如陣列為的乙個旋轉,該陣列的最小值為1。note 給出的所有元素都大於0,若陣列大小為0,請返回0。思路 類似二分查詢,不斷縮小查詢範圍 int minnumberinro...

旋轉陣列的最小值

題目描述 把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個遞增排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。例如陣列為的乙個旋轉,該陣列的最小值為1。輸入 輸入可能包含多個測試樣例,對於每個測試案例,輸入的第一行為乙個整數n 1 n 1000000 代表旋轉陣列的元素個數。...