最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++中求旋轉(zhuǎn)數(shù)組中的最小數(shù)字(經(jīng)典面試題)

 更新時間:2017年03月22日 11:57:39   作者:cm_cyj_1116  
這篇文章主要介紹了C++中求旋轉(zhuǎn)數(shù)組中的最小數(shù)字(經(jīng)典面試題)的相關(guān)資料,需要的朋友可以參考下

面試題:旋轉(zhuǎn)數(shù)組的最小數(shù)字

題目:把一個數(shù)組的最開始的若干個元素搬到數(shù)組的末尾,我們稱之為數(shù)組的旋轉(zhuǎn)。輸入一個遞增數(shù)組的旋轉(zhuǎn),輸出旋轉(zhuǎn)數(shù)組的最小元素。例如數(shù)組{3,4,5,1,2}為{1,2,3,4,5}的一個旋轉(zhuǎn),該數(shù)組的最小值為1.

算法:

(1)當(dāng)輸入的旋轉(zhuǎn)數(shù)組非法時:處理!
(2)當(dāng)輸入的旋轉(zhuǎn)數(shù)組正常時,index1 = 0;index2=length-1:

   a:如果arry[index1] <arry[index2]時:說明數(shù)組為原數(shù)組,并沒有進行旋轉(zhuǎn);
   b:如果arry[index1] >= arry[index2]時,middle = (index1+index2)/2:

       b.1如果arry[index1] >arry[middle],index2 = middle;
       b.2如果arry[index1] <= arry[middle],index1 = middle;
       b.3 如果arry[index1] = arry[middle] = arry[index2],遍歷找到最小值。

代碼:

Min_RotateArray.hpp

#pragma once 
#include<iostream> 
using namespace std; 
 
int Min_RotateArray(int arry[],int size) 
{ 
  if(arry == NULL || size <= 0) 
  {cout<<"參數(shù)輸入錯誤?。?!"<<endl;} 
  int min = 0; 
  int index1 = 0; 
  int index2 = size-1; 
  int middle = (index1+index2)/2; 
  if(arry[0] < arry[size-1]) 
    return arry[0]; 
  while(arry[index1] >= arry[index2]) 
  { 
    if(index2-index1 == 1) 
    { 
      min=index2; 
      break; 
       
    } 
    middle = (index1+index2)/2; 
    if(arry[index1] <= arry[middle])//arry[middle]還在第一個遞增序列中 
    { 
      index1 = middle; 
    } 
    else             
    { 
      if(arry[index1] >= arry[middle])//arry[middle]在第二個遞增序列中 
      {index2 = middle;} 
       
      if(arry[index1] == arry[index2] && arry[index1] == arry[middle]) 
      { 
        for(int i=0;i<size;++i) 
        { 
          if(arry[min]>arry[i]) 
            { 
              min = i; 
              break; 
            } 
        } 
 
      } 
    } 
  } 
  return arry[min]; 
} 

Min_RotateArray.cpp

#include"Min_RotateArray.hpp" 
 
int main() 
{ 
  int arry[] = {3,4,5,1,2}; 
  int size = sizeof(arry)/sizeof(arry[0]); 
  int min = Min_RotateArray(arry,size); 
  cout<<"The min is:"<<min<<endl; 
  system("pause"); 
  return 0; 
} 

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

最新評論

沈阳市| 寻乌县| 莱西市| 苍山县| 永顺县| 临沂市| 金华市| 故城县| 太保市| 鄂尔多斯市| 万盛区| 凌源市| 泾川县| 邵阳市| 封丘县| 静安区| 额敏县| 镇坪县| 宁武县| 呈贡县| 福清市| 桃园市| 威远县| 交口县| 麻江县| 昌都县| 汾阳市| 长沙市| 石门县| 奉节县| 娱乐| 烟台市| 蒙自县| 泽州县| 荆门市| 多伦县| 昌邑市| 广汉市| 杂多县| 黄大仙区| 绥江县|