這篇文章將為大家詳細(xì)講解有關(guān)利用C++怎么求旋轉(zhuǎn)數(shù)組中的最小數(shù)字,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

題目:把一個(gè)數(shù)組的最開始的若干個(gè)元素搬到數(shù)組的末尾,我們稱之為數(shù)組的旋轉(zhuǎn)。輸入一個(gè)遞增數(shù)組的旋轉(zhuǎn),輸出旋轉(zhuǎn)數(shù)組的最小元素。例如數(shù)組{3,4,5,1,2}為{1,2,3,4,5}的一個(gè)旋轉(zhuǎn),該數(shù)組的最小值為1.
算法:
(1)當(dāng)輸入的旋轉(zhuǎn)數(shù)組非法時(shí):處理!
(2)當(dāng)輸入的旋轉(zhuǎn)數(shù)組正常時(shí),index1 = 0;index2=length-1:
a:如果arry[index1] <arry[index2]時(shí):說明數(shù)組為原數(shù)組,并沒有進(jìn)行旋轉(zhuǎn);
b:如果arry[index1] >= arry[index2]時(shí),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ù)輸入錯(cuò)誤!!!"<<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]還在第一個(gè)遞增序列中
{
index1 = middle;
}
else
{
if(arry[index1] >= arry[middle])//arry[middle]在第二個(gè)遞增序列中
{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)于利用C++怎么求旋轉(zhuǎn)數(shù)組中的最小數(shù)字就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站chinadenli.net,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
本文題目:利用C++怎么求旋轉(zhuǎn)數(shù)組中的最小數(shù)字-創(chuàng)新互聯(lián)
當(dāng)前URL:http://chinadenli.net/article20/dpiejo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、手機(jī)網(wǎng)站建設(shè)、動(dòng)態(tài)網(wǎng)站、網(wǎng)站設(shè)計(jì)公司、企業(yè)網(wǎng)站制作、關(guān)鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容