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

首頁 > 編程 > C++ > 正文

C++實現旋轉數組的二分查找

2020-01-26 15:18:08
字體:
來源:轉載
供稿:網友

本文實例講述了C++實現旋轉數組的二分查找方法,分享給大家供大家參考。具體方法如下:

題目要求:

旋轉數組,如{3, 4, 5, 1, 2}是{1, 2, 3, 4, 5}的一個旋轉,要求利用二分查找查找里面的數。

這是一道很有意思的題目,容易考慮不周全。這里給出如下解決方法:

#include <iostream>using namespace std;int sequentialSearch(int *array, int size, int destValue){ int pos = -1; if (array == NULL || size <= 0) return pos; for (int i = 0; i < size; i++) { if (array[i] == destValue) {  pos = i;  break; } } return pos;}int normalBinarySearch(int *array, int leftPos, int rightPos, int destValue){ int destPos = -1; if (array == NULL || leftPos < 0 || rightPos < 0) { return destPos; } int left = leftPos; int right = rightPos; while (left <= right) { int mid = (right - left) / 2 + left; if (array[mid] == destValue) {  destPos = mid;  break; } else  if (array[mid] < destValue)  {  left = mid + 1;  }  else  {  right = mid - 1;  } } return destPos;}int rotateBinarySearch(int *array, int size, int destValue){ int destPos = -1; if (array == NULL || size <= 0) { return destPos; } int leftPos = 0; int rightPos = size - 1; while (leftPos <= rightPos) { if (array[leftPos] < array[rightPos]) {  destPos = normalBinarySearch(array, leftPos, rightPos, destValue);  break; }  int midPos = (rightPos - leftPos) / 2 + leftPos; if (array[leftPos] == array[midPos] && array[midPos] == array[rightPos]) {  destPos = sequentialSearch(array, size, destValue);  break; } if (array[midPos] == destValue) {  destPos = midPos;  break; } if (array[midPos] >= array[leftPos]) {  if (destValue >= array[leftPos])  {  destPos = normalBinarySearch(array, leftPos, midPos - 1, destValue);  break;  }   else  {  leftPos = midPos + 1;  } } else {  if (array[midPos] <= array[rightPos])  {  destPos = normalBinarySearch(array, midPos + 1, rightPos, destValue);  break;  }   else  {  rightPos = midPos - 1;  } } } return destPos;}int main(){ //int array[] = {3, 4, 5, 1, 2}; //int array[] = {1, 2, 3, 4, 5}; //int array[] = {1, 0, 1, 1, 1}; //int array[] = {1, 1, 1, 0, 1}; //int array[] = {1}; //int array[] = {1, 2}; int array[] = {2, 1}; const int size = sizeof array / sizeof *array; for (int i = 0; i <= size; i++) { int pos = rotateBinarySearch(array, size, array[i]); cout << "find " << array[i] << " at: " << pos + 1 << endl; } for (int i = size; i >= 0; i--) { int pos = rotateBinarySearch(array, size, array[i]); cout << "find " << array[i] << " at: " << pos + 1 << endl; }}

希望本文所述對大家C++算法設計的學習有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品永久免费在线| 欧美精品国产精品日韩精品| 国产日韩欧美另类| 国产不卡视频在线| 国产亚洲精品久久久优势| 欧美激情欧美激情在线五月| 国产精品久久久久久亚洲影视| 国内精品一区二区三区| 国产99久久精品一区二区| 91精品久久久久久久久久久| 色偷偷偷综合中文字幕;dd| 亚洲国产精品人久久电影| 欧美乱大交xxxxx另类电影| 亚洲欧美激情在线视频| 成人免费淫片aa视频免费| 国产一区二区三区免费视频| 亚洲欧美中文在线视频| 97国产在线观看| 95av在线视频| 午夜精品一区二区三区在线播放| 操91在线视频| 亚洲精品www| 国产视频久久久久| 亚洲free性xxxx护士白浆| 亚洲色图综合网| 国产精品私拍pans大尺度在线| 97视频在线观看亚洲| 久久精品久久精品亚洲人| 亚洲精品免费一区二区三区| 亚洲欧洲日产国码av系列天堂| 毛片精品免费在线观看| 久久精品电影网站| 国产狼人综合免费视频| 亚洲影院在线看| 成人免费视频a| 欧美精品第一页在线播放| 日韩精品在线观看一区二区| 亚州av一区二区| 久久久久一本一区二区青青蜜月| 亚洲自拍偷拍网址| 欧美性猛交xxxx富婆| 国产精品人人做人人爽| 亚洲精品自拍第一页| 欧美成人精品一区二区| 国产中文欧美精品| 97超级碰碰人国产在线观看| 97香蕉超级碰碰久久免费的优势| 国产一区二区免费| 国产suv精品一区二区| 综合欧美国产视频二区| 欧美激情精品久久久久久变态| 57pao国产精品一区| 日韩最新中文字幕电影免费看| 亚洲成avwww人| 日韩精品在线观看视频| 久久国产精品首页| 久久精品中文字幕免费mv| 欧美性xxxxx| www高清在线视频日韩欧美| 欧美乱大交xxxxx| 欧美xxxwww| 疯狂做受xxxx高潮欧美日本| 成人网欧美在线视频| 亚洲精品美女在线| 尤物九九久久国产精品的特点| 久久久av网站| 国产欧美日韩精品在线观看| 亚洲小视频在线观看| 亚洲jizzjizz日本少妇| 国产一区二区在线免费视频| 激情懂色av一区av二区av| 欧美午夜激情视频| 黑人巨大精品欧美一区免费视频| 欧美激情亚洲另类| 国产乱人伦真实精品视频| 精品日韩中文字幕| 精品色蜜蜜精品视频在线观看| 2019亚洲男人天堂| 欧美中文在线视频| 日韩美女在线观看一区| 伊是香蕉大人久久| 亚洲成年网站在线观看| 一区二区在线视频播放| 成人精品一区二区三区| 亚洲欧美日韩视频一区| 精品中文字幕在线观看| 欧美日韩国产在线| 欧美孕妇性xx| 日韩极品精品视频免费观看| 欧美重口另类videos人妖| 久久久亚洲国产天美传媒修理工| 日韩在线精品一区| 亚洲片在线观看| xxxx欧美18另类的高清| 成人网在线免费观看| 成人黄色av免费在线观看| 欧美极品美女视频网站在线观看免费| 亚洲精品xxx| 欧美电影电视剧在线观看| 庆余年2免费日韩剧观看大牛| 国产精品678| 国产日韩欧美另类| 在线播放国产一区中文字幕剧情欧美| 亚洲美女免费精品视频在线观看| 亚洲人成绝费网站色www| 国产精品大片wwwwww| 成人美女av在线直播| 91欧美日韩一区| 中文字幕亚洲综合久久| 一区二区日韩精品| 91亚洲精品在线| 亚洲奶大毛多的老太婆| 日韩禁在线播放| 色噜噜狠狠色综合网图区| 精品久久久久久久久国产字幕| 国语自产偷拍精品视频偷| 国产成人在线精品| 欧美日韩一区二区免费视频| 国产精品久久久久久久av电影| 久久久久久久久国产| 亚洲国产精品人人爽夜夜爽| 精品久久国产精品| 久久久精品2019中文字幕神马| 中文字幕精品一区二区精品| 国产在线观看91精品一区| 久久久999成人| 日韩在线观看免费av| 欧美性猛交xxxx乱大交蜜桃| 精品中文字幕在线观看| 国产午夜精品麻豆| 一区二区三区亚洲| 国产69久久精品成人看| 日韩欧美在线看| 神马久久久久久| 欧美一区二区影院| 亚洲国产精品久久久久秋霞不卡| 国产欧美最新羞羞视频在线观看| 国产精品免费一区二区三区都可以| 欧美性受xxxx白人性爽| 伊人伊人伊人久久| 狠狠久久亚洲欧美专区| 2021久久精品国产99国产精品| 国产精品扒开腿做爽爽爽的视频| 激情成人中文字幕| 亚洲欧洲在线观看| 亚洲精品视频久久| 性日韩欧美在线视频| 91久久精品国产91性色| 久久亚洲综合国产精品99麻豆精品福利| 亚洲日韩中文字幕在线播放| 精品国产精品三级精品av网址| 日韩在线不卡视频| 欧美伊久线香蕉线新在线| 国产成人免费91av在线| 欧美激情视频在线免费观看 欧美视频免费一| 国产日韩中文字幕在线| 成人国内精品久久久久一区| 精品久久在线播放| 国产精品美女午夜av| 538国产精品一区二区免费视频| 欧美成年人网站| 亚洲美女av在线播放| 国产精品第一视频| 国产aⅴ夜夜欢一区二区三区|