前言:
眼前姐妹们对“用非递归方法实现递归算法”大约比较注重,同学们都想要剖析一些“用非递归方法实现递归算法”的相关资讯。那么小编在网络上收集了一些关于“用非递归方法实现递归算法””的相关文章,希望大家能喜欢,咱们一起来了解一下吧!二分查找法也称为折半查找法,它的思想是每次都与序列的中间元素进行比较。二分查找的一个前提条件是数组是有序的。
二分查找可以使用递归和非递归的方法来解决:
#include<iostream>using namespace std;int binarySearchLoop(int arr[], int len, int findData){ if(arr==NULL || len <=0) return -1; int start = 0; int end = len-1; while(start<=end) { int mid = start+(end-start)/2; if(arr[mid] == findData) return mid; else if(findData < arr[mid]) end = mid-1; else start = mid+1; } return -1;}int binarySearchRecursion(int arr[], int findData, int start, int end){ if(arr==NULL || start>end) return -1; int mid = start+(end-start)/2; if(arr[mid] == findData) return mid; else if(findData < arr[mid]) binarySearchRecursion(arr, findData, start, mid-1); else binarySearchRecursion(arr, findData, mid+1, end);}void main(){ int arr[] = {1,2,3,4,5,6,7,8}; int len = sizeof(arr)/sizeof(arr[0]); int index = binarySearchLoop(arr,len,6); int index2 = binarySearchRecursion(arr,6,0,len-1); cout<<index<<endl; cout<<index2<<endl; system("pause");}/*55*/-End-
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #用非递归方法实现递归算法 #折半查找递归非递归