最新国产好看的视频,伊人天堂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)論

额尔古纳市| 南召县| 朔州市| 沂水县| 新疆| 同心县| 高唐县| 运城市| 郑州市| 阿坝| 长岛县| 平塘县| 珲春市| 女性| 宜春市| 类乌齐县| 罗田县| 新民市| 洛宁县| 内乡县| 南江县| 绥阳县| 淳化县| 阜康市| 太仆寺旗| 安阳县| 江西省| 乌兰浩特市| 株洲市| 武城县| 龙江县| 扎鲁特旗| 曲沃县| 广元市| 兴安县| 攀枝花市| 沅江市| 石渠县| 宜州市| 福建省| 上栗县|