国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

簡單分析遞歸與非遞歸實現代碼

2020-02-24 14:37:05
字體:
來源:轉載
供稿:網友

今天給朋友們帶來二分查找算法非遞歸實現和遞歸實現,剛開始卡了許久,沒有第一時間看出問題,現在把問題梳理一下,并給出解決方案,現在就給各位簡單分析遞歸與非遞歸實現代碼。


#include

?

int binSearch(int arr[], int low, int high, int key);
int binSearch2(int arr[], int low, int high, int key);
int binSearch3(int arr[],int start,int ends,int key);
int main() {
??? int arr[]={3,8,11,15,17,22,23,26,28,29,34};
??? //printf("%d",binSearch(arr,0,10,26));
??? printf("%d",binSearch3(arr,0,10,26));
??? return 1;
}

int binSearch(int arr[], int low, int high, int key) {
??? int flag=-1;
??? int mid = (low + high) / 2;
??? if (low > high) {
??????? flag= -1;
??? } else {

??????? if (arr[mid] ??????????? flag= binSearch(arr, mid + 1, high, key);
??????? } else if (arr[mid]>key) {
??????????? //比如要找的節點在下面這一層?? 那么這一層會返回下標上來 用flag接住嘛...
??????????? flag= binSearch(arr,low,mid-1,key);//又差一點忘記了用flag取接住返回值了

??????? } else {
??????????? flag= mid;
??????? }
??? }
??? return flag;
}


//ok==============================
int binSearch2(int arr[], int low, int high, int key) {
??? int mid = (low + high) / 2;
??? if (low > high) {
??????? return -1;
??? } else {

??????? if (arr[mid] ??????????? return binSearch2(arr, mid + 1, high, key);
??????? } else if (arr[mid]>key) {
??????????? return binSearch2(arr,low,mid-1,key);
??????? } else {
??????????? return mid;
??????? }
??? }

}

int binSearch3(int arr[],int start,int ends,int key){
??? int mid=-1;
??? while(start??????? mid=(start+ends)/2;
??????? if(arr[mid]??????????? start=mid+1;
??????? }else if(arr[mid]>key){
??????????? ends=mid-1;
??????? }else{
??????????? break;
??????? }
??? }//上述循環結束后不一定就是 start>ends的? 因為有break語句
??? if(start>ends){
??????? mid=-1;
??? }
??? return mid;
}???????


以上就是簡單分析遞歸與非遞歸實現代碼,想必都已有了一定的了解,更多關于C語言的內容請繼續關注武林技術頻道。

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

圖片精選

主站蜘蛛池模板: 东方市| 祁连县| 安庆市| 通渭县| 土默特右旗| 长子县| 封丘县| 绥阳县| 闻喜县| 安平县| 高淳县| 泰宁县| 锡林郭勒盟| 安龙县| 即墨市| 盱眙县| 柳河县| 门源| 浦城县| 高邑县| 沈阳市| 新龙县| 元谋县| 蒙城县| 河南省| 永登县| 深泽县| 邳州市| 富蕴县| 平罗县| 化隆| 浠水县| 德化县| 崇礼县| 合山市| 天气| 青阳县| 仙游县| 青浦区| 通化县| 裕民县|