欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C語言

當(dāng)前位置:主頁 > 軟件編程 > C語言 >

求解旋轉(zhuǎn)數(shù)組的最小數(shù)字

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C語言|點擊: 次

求解旋轉(zhuǎn)數(shù)組的最小數(shù)字

題目描述:

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

思路解析:

O(N)的算法

這種算法的思想就是遍歷這個數(shù)組,由于這個數(shù)組是兩部分有序的數(shù)組,因此遍歷這個數(shù)組時當(dāng)后一個數(shù)字小于前一個數(shù)字時,則后一個(即較?。┮欢檎麄€數(shù)組中最小的數(shù)字。

這種算法的思想很簡單,但就是時間復(fù)雜度較大,因此不是很好的算法。

int minNumberInRotateArray(vector<int> rotateArray)
{
  if (rotateArray.empty())
    return -1;

  unsigned int i=0;
  for (; i<rotateArray.size()-1; i++)
  {
    if (rotateArray[i] > rotateArray[i+1])
      break;
  }
  return rotateArray[i+1];
}

O(logN)的算法

這種算法思想類似于二分查找,首先每次找到數(shù)組中中間的數(shù)字mid,如果mid大于最左端left,說明最小數(shù)在mid的右側(cè)區(qū)間,則改變left,置left為mid;如果mid小于數(shù)組右側(cè)right,說明最小數(shù)在mid的左側(cè)區(qū)間,則改變right為mid….當(dāng)left的數(shù)字小于等于right的數(shù)字時,說明已經(jīng)找到最小數(shù),這個也是循環(huán)結(jié)束的條件

int minNumberInRotateArray(vector<int> rotateArray)
{
  if (rotateArray.empty())
    return -1;
  unsigned int left=0;
  unsigned int right=rotateArray.size()-1;
  unsigned int mid=left;
  while (rotateArray[left] >= rotateArray[right])
  {
    if (right-left == 1)
    {
      mid = right;
      break;
    }
    mid = left+((right-left)>>1);

    if (rotateArray[mid]==rotateArray[left] && rotateArray[right]==rotateArray[mid])
      return rotateArray[mid];

    if (rotateArray[mid] >= rotateArray[left])
      left = mid;
    else if (rotateArray[mid] <= rotateArray[right])
      right = mid;
  }
  return rotateArray[mid];
}

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

上一篇:C語言使用openSSL庫DES模塊實現(xiàn)加密功能詳解

欄    目:C語言

下一篇:數(shù)據(jù)結(jié)構(gòu) 數(shù)組順序存儲詳細介紹

本文標(biāo)題:求解旋轉(zhuǎn)數(shù)組的最小數(shù)字

本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/1529.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有