二分查找非递归与递归实现
2017-05-17 17:53
253 查看
#include <stdio.h> int BinSearch(int *str, int sz, int key) //非递归 { int left = 0; int right = sz-1; int mid; while (left <= right) { mid = (left + right) / 2; if (key < str[mid]) { right = mid-1; } if (key > str[mid]) { left = mid+1; } if (key == str[mid]) return str[mid]; } printf("no this key\n"); return 0; } //int BinSearch(int *str, int left,int right ,int key)//mid的作用域 //{ // if (left <= right) // { // int mid = (left + right) / 2; // if (key == str[mid]) // return str[mid]; // if (key < str[mid]) // return BinSearch(str,left,mid-1,key); // if (key > str[mid]) // return BinSearch(str,mid+1,right,key); // } // printf("No this key\n"); // return 0; // //} int main() { int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8 }; int sz = sizeof(arr) / sizeof arr[0]; int p = BinSearch(arr, 0,sz-1, 10); printf("%d\n", p); return 0; }
相关文章推荐
- 二分查找递归实现
- 二分查找的递归和非递归实现
- 二分查找的递归与迭代实现
- 使用c语言指针和递归方法实现二分查找
- 二分查找非递归实现--【编程珠玑】
- 二分查找算法递归实现
- 《算法导论》第二章----插入排序(伪代码实现、课后习题(递归版本、二分查找策略版本))
- 二分查找 递归实现 和 循环实现
- 二分查找的递归与非递归实现
- Java实现折半查找(二分查找)的递归和非递归算法
- Java实现折半查找(二分查找)的递归和非递归算法
- 二分查找的递归和非递归实现
- 漫谈递归:二分查找算法的递归实现
- 二分查找递归与非递归实现
- Java实现折半查找(二分查找)的递归和非递归算法
- 用递归实现的二分查找
- Java实现折半查找(二分查找)的递归和非递归算法
- Java实现折半查找(二分查找)的递归和非递归算法
- C语言实现 二分查找数组中的Key值(递归和非递归)
- 二分查找递归实现--【编程珠玑】