国产探花免费观看_亚洲丰满少妇自慰呻吟_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語言的內容請繼續關注武林技術頻道。

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

圖片精選

主站蜘蛛池模板: 渭南市| 周宁县| 会同县| 日喀则市| 苍南县| 独山县| 合川市| 杭锦后旗| 双桥区| 丰宁| 淮阳县| 紫金县| 邻水| 滨海县| 集贤县| 隆尧县| 双鸭山市| 黑河市| 海晏县| 丹棱县| 临城县| 南漳县| 桓仁| 任丘市| 长子县| 神木县| 宝山区| 玉环县| 阿尔山市| 石景山区| 长丰县| 台东市| 新竹市| 康马县| 莫力| 靖宇县| 鹤山市| 久治县| 东辽县| 汽车| 大厂|