亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

C語言輸出旋轉后數組中的最小數元素的算法原理與實例

2020-01-26 14:40:36
字體:
來源:轉載
供稿:網友

  問題描述:把一個數組最開始的若干個元素搬到數組的末尾,我們稱之為數組的旋轉。輸入一個排好序的數組的一個旋轉,輸出旋轉數組的最小元素。例如數組{3, 4, 5, 1, 2}為{1, 2, 3, 4, 5}的一個旋轉,該數組的最小值為1。
     思路:這道題最直觀的解法并不難。從頭到尾遍歷數組一次,就能找出最小的元素,時間復雜度顯然是O(n)。但這個思路沒有利用輸入數組的特性。既然有時間復雜度更小的算法,我們容易想到二分查找,因為它的時間復雜度為O(logn)。這個問題是否可以運用二分查找呢?答案是肯定的。觀察一下數組的特性,首先遞增(稱為遞增a),然后突然下降到最小值,然后再遞增(稱為遞增b)。當然還有一種特殊情況,就是數組遞增,中間沒有下降,即旋轉元素個數為0。
      對于一般的情況,假設A為輸入數組,left 和 right 為數組左右邊界的坐標,考察中間位置的值A[mid] ,如果A[mid] <= A[right],表明處于遞增b,調整右邊界 right = mid;如果A[mid] >= A[left],表明處于遞增a,因此調整左邊界left = mid。當左右邊界相鄰時,較小的一個就是數組的最小值。其實,對于一般情況,右邊界所指的元素為最小值。
     對于特殊情況,即旋轉個數為0。按照上述算法,右邊界會不斷減少,直到與左邊界相鄰。這時左邊界所指的元素為最小值。下面給出幾組測試案例:

//{1,2,3,4,5,6,7,8,9,10}  1 //{4,5,6,7,8,9,10,1,2,3}  1 //{1,1,1,1,1,1,1,1,1,1}  1 //{1,9,10,1,1,1,1,1,1,1}  1 //{9,9,9,9,9,9,9,10,1,9}  9 錯誤 

 
     第五組的結果是錯誤的。其實,上述算法適用于嚴格遞增的數組,對于非嚴格遞增,用二分法無法保證正確解。有興趣的讀者,可以試試,對于非嚴格遞增的序列,是否可以用二分法得到正確解。
     參考代碼:

//函數功能 : 旋轉數組的最小元素  //函數參數 : pArray指向數組,len為數組長度 //返回值 :  最小元素 int FindMin(int *pArray, int len) {   if(pArray == NULL || len <= 0)     return 0;   int left = 0, right = len - 1, mid;   while(right - left != 1)   {      mid = left + ((right - left)>>1);      if(pArray[right] >= pArray[mid])         right = mid;      else if(pArray[left] <= pArray[mid])            left = mid;   }   return pArray[right] > pArray[left] ? pArray[left]: pArray[right]; } 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩视频免费中文字幕| 日韩高清av在线| 欧美激情一区二区三级高清视频| 欧美激情国内偷拍| 性欧美xxxx视频在线观看| 91精品国产色综合久久不卡98口| 国产成人久久久| 日本精品视频在线观看| 国产精品久久久久aaaa九色| 亚洲精品99999| 国产欧美日韩91| 97香蕉超级碰碰久久免费软件| 亚洲aaaaaa| 精品无人区乱码1区2区3区在线| 另类天堂视频在线观看| 色综久久综合桃花网| 国产午夜一区二区| 992tv成人免费影院| 国产乱人伦真实精品视频| 日本精品中文字幕| 亚洲国产精品va在看黑人| 97精品久久久中文字幕免费| 91精品国产成人www| 欧美剧在线观看| 国内免费久久久久久久久久久| 精品久久久视频| 国产又爽又黄的激情精品视频| 国产自产女人91一区在线观看| 中文字幕日韩欧美在线| 亚洲国产精品美女| 国产精品视频久久久久| 麻豆成人在线看| 91久久夜色精品国产网站| 欧美一级电影免费在线观看| 国产精品扒开腿做爽爽爽的视频| 这里精品视频免费| 亚洲va久久久噜噜噜久久天堂| 亚洲国产日韩欧美在线图片| 久久久久国色av免费观看性色| 国产欧美va欧美va香蕉在线| 欧美性猛交xxxx富婆弯腰| 91精品免费久久久久久久久| 日本成熟性欧美| 欧美亚洲视频一区二区| 人体精品一二三区| 国产女精品视频网站免费| 97精品欧美一区二区三区| 国产日韩精品在线观看| 中文字幕亚洲欧美| 国产精品中文字幕在线观看| 揄拍成人国产精品视频| 中文字幕国内精品| 国产精品久久久久7777婷婷| 欧美日韩在线第一页| 精品亚洲永久免费精品| 久久国产精品首页| 欧美日韩国产精品一区二区三区四区| 97在线精品视频| 日韩一区在线视频| 国产成人拍精品视频午夜网站| 日韩美女中文字幕| 日韩黄色在线免费观看| 欧美精品videosex性欧美| 久精品免费视频| 亚洲级视频在线观看免费1级| 性欧美长视频免费观看不卡| 久久av中文字幕| 日韩精品在线影院| 国产亚洲欧美另类中文| 国产激情999| 午夜精品久久久99热福利| 美女啪啪无遮挡免费久久网站| 亚洲精品美女在线| 最近2019年好看中文字幕视频| 久久久999精品免费| 久久久久久av| 欧洲亚洲免费在线| 91黑丝在线观看| 午夜精品久久17c| 9.1国产丝袜在线观看| 欧美电影在线观看完整版| 精品国产视频在线| 亚洲天堂av在线免费观看| 欧美极品xxxx| 中文字幕不卡av| 亚洲女成人图区| 亚洲国产精彩中文乱码av在线播放| 国产成人avxxxxx在线看| 曰本色欧美视频在线| 亚洲国产精品久久精品怡红院| 久久天天躁夜夜躁狠狠躁2022| 日本一区二三区好的精华液| 国产91在线视频| 欧美日韩成人在线播放| 亚洲bt天天射| 国产精品极品尤物在线观看| 中日韩美女免费视频网站在线观看| www.久久久久| 中文国产成人精品| 91色在线视频| 中文字幕日韩高清| 97涩涩爰在线观看亚洲| 久热爱精品视频线路一| 亚洲美腿欧美激情另类| 亚洲免费视频一区二区| 欧美成人手机在线| 午夜精品视频在线| 亚洲人成在线观看| 国产亚洲精品久久久久久777| 中文字幕一区二区三区电影| 91精品国产综合久久香蕉| 亚洲成人激情在线观看| 日韩电影视频免费| 欧美精品福利在线| 深夜福利日韩在线看| 欧美刺激性大交免费视频| 在线电影av不卡网址| 成人免费视频在线观看超级碰| 91精品国产九九九久久久亚洲| 亚洲wwwav| 欧美在线观看网址综合| 久久精品国产96久久久香蕉| 日韩在线免费视频观看| 国语自产偷拍精品视频偷| 欧美中文字幕在线观看| 国产精品福利观看| 欧美黑人性生活视频| 日韩激情第一页| 日韩欧美国产成人| 亚洲精品电影网站| 欧美激情啊啊啊| 日韩中文字幕在线精品| 亚洲精品欧美一区二区三区| 这里只有精品视频在线| 久久久久中文字幕| 国产成人91久久精品| 亚洲第一精品电影| 欧美一级片一区| 国产精品 欧美在线| 日韩av在线网| 亚洲第一av在线| 51ⅴ精品国产91久久久久久| 欧美色播在线播放| 亚洲日本成人女熟在线观看| 久久人人爽人人爽人人片亚洲| 国产一区二区三区在线免费观看| 欧美亚洲视频在线观看| 欧美性感美女h网站在线观看免费| 国产精品国产三级国产aⅴ浪潮| 91九色国产在线| 久久久99久久精品女同性| 不卡毛片在线看| 亚洲第一福利在线观看| 日韩一级黄色av| 日韩欧美在线视频免费观看| 欧美在线视频观看免费网站| 欧美在线观看网址综合| 中文在线资源观看视频网站免费不卡| 北条麻妃在线一区二区| 亚洲成色777777女色窝| 久久久国产精品免费| 久久香蕉国产线看观看av| 欧美性猛交xxxx乱大交| 久久精品国产亚洲一区二区|