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

C語言實(shí)現(xiàn)兩個(gè)遞減數(shù)列中尋找某一個(gè)數(shù)

 更新時(shí)間:2014年09月17日 11:51:00   投稿:shichen2014  
這篇文章主要介紹了C語言實(shí)現(xiàn)兩個(gè)遞減數(shù)列中尋找某一個(gè)數(shù),是一類經(jīng)典的數(shù)組操作算法,需要的朋友可以參考下

本文實(shí)例講述了C語言實(shí)現(xiàn)兩個(gè)遞減數(shù)列中尋找某一個(gè)數(shù)的方法,分享給大家供大家參考之用。具體方法如下:

通常來說這道題算二分查找法中非常有難度的一題了。

題目如下:

一個(gè)數(shù)組是由一個(gè)遞減數(shù)列左移若干位形成,比如{4, 3, 2, 1, 6, 5}是由{6, 5, 4, 3, 2, 1}左移兩位,在這種數(shù)組中查找某一個(gè)數(shù)。

實(shí)現(xiàn)代碼如下:

int array[] = {4, 3, 2, 1, 6, 5};
const int size = sizeof array / sizeof *array;

int findMinNumber(int (&array)[size], int start, int last, int dest)
{
 int mid = (last - start) / 2 + start;
 int result;

 if(start > last) {
 return -1;
 }

 if(array[mid] == dest) {
 result = mid;
 return result;
 } 

 if(array[mid] <= array[start]) {
 if(dest > array[mid] && dest <= array[start]) {
 last = mid - 1;
 result = findMinNumber(array, start, last, dest);
 }
 else {
 start = mid + 1;
 result = findMinNumber(array, start, last, dest);
 }
 } else if(array[mid] > array[start]) {
 if(dest < array[mid] && dest >= array[last]) {
 start = mid + 1;
 result = findMinNumber(array, start, last, dest);
 }
 else {
 last = mid - 1;
 result = findMinNumber(array, start, last, dest);
 }
 }

 return result;
}

程序運(yùn)行結(jié)果如下圖所示:

希望本文所述對(duì)大家C程序算法設(shè)計(jì)的學(xué)習(xí)有所幫助。

相關(guān)文章

最新評(píng)論

阳高县| 德阳市| 丰镇市| 丹棱县| 松滋市| 张家川| 阿拉善右旗| 长宁区| 阳山县| 祁连县| 双江| 曲松县| 富蕴县| 谢通门县| 南京市| 白山市| SHOW| 星座| 子长县| 沂水县| 防城港市| 抚州市| 丹东市| 江安县| 昆山市| 内江市| 扎鲁特旗| 云龙县| 木里| 湖北省| 锦屏县| 茶陵县| 喜德县| 尼勒克县| 吴江市| 义马市| 兴山县| 名山县| 儋州市| 开远市| 阳东县|