C語言實(shí)現(xiàn)兩個(gè)遞減數(shù)列中尋找某一個(gè)數(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í)有所幫助。
- c語言的cps實(shí)現(xiàn)求fibonacci數(shù)列示例
- C語言柔性數(shù)組實(shí)例詳解
- C語言構(gòu)建動(dòng)態(tài)數(shù)組完整實(shí)例
- C語言安全之?dāng)?shù)組長(zhǎng)度與指針實(shí)例解析
- C語言安全編碼數(shù)組記法的一致性
- C語言安全編碼之?dāng)?shù)組索引位的合法范圍
- c語言動(dòng)態(tài)數(shù)組示例
- 約瑟夫環(huán)問題(數(shù)組法)c語言實(shí)現(xiàn)
- C語言二維數(shù)組的處理實(shí)例
- 深入理解c語言數(shù)組
- C語言數(shù)組指針的小例子
- c語言中用字符串?dāng)?shù)組顯示菜單的解決方法
- C語言中全局?jǐn)?shù)組和局部數(shù)組的問題
相關(guān)文章
C/C++?QT實(shí)現(xiàn)自定義對(duì)話框的示例代碼
對(duì)話框分為多種,常見的有通用對(duì)話框,自定義對(duì)話框,模態(tài)對(duì)話框,非模態(tài)對(duì)話框等,本文主要介紹了QT自定義對(duì)話框,感興趣的可以了解一下2021-11-11
C++ DFS算法實(shí)現(xiàn)走迷宮自動(dòng)尋路
這篇文章主要為大家詳細(xì)介紹了C++ DFS算法實(shí)現(xiàn)走迷宮自動(dòng)尋路,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-05-05
基于C語言實(shí)現(xiàn)的貪吃蛇游戲完整實(shí)例代碼
這篇文章主要介紹了基于C語言實(shí)現(xiàn)的貪吃蛇游戲完整實(shí)例代碼,對(duì)于學(xué)習(xí)游戲開發(fā)的朋友有一定的借鑒價(jià)值,需要的朋友可以參考下2014-08-08
C++中int?main(int?argc,?char**?argv)的參數(shù)使用
int?main(int?argc,?char**?argv)?是C和C++程序的入口點(diǎn),其中argc和argv是用來接收從命令行傳遞給程序的參數(shù)的,本文就來介紹一下這兩個(gè)參數(shù)的含義,感興趣的可以了解一下的相關(guān)資料2024-01-01
OpenCV利用高斯模糊實(shí)現(xiàn)簡(jiǎn)單的磨皮美顏效果
這篇文章主要介紹了通過OpenCV中的高斯模糊以及雙邊模糊來實(shí)現(xiàn)一個(gè)簡(jiǎn)單的磨皮美顏效果,文中的講解很詳細(xì),感興趣的同學(xué)可以學(xué)習(xí)一下2021-12-12
QT實(shí)戰(zhàn)之打開最近文檔功能的實(shí)現(xiàn)
這篇文章主要為大家詳細(xì)介紹了如何利用Qt實(shí)現(xiàn)打開最近文檔功能,并實(shí)現(xiàn)基本的新建、打開、保存、退出、幫助等功能,感興趣的可以動(dòng)手嘗試一下2022-06-06

