二份查找:
int binary_search(const int* target, int begin, int end, int match) {
int middle = (begin+end)/2;
if(target[middle] == match)
return middle;
else if(target[middle] < match)
begin = middle + 1;
else if(target[middle] > match)
end = middle - 1;
binary_search(target, begin, end, match);
}
//或者如下查询
int binary_search(const int* target, int begin, int end, int match) {
int middle = (begin+end)/2;
while(target[middle] != match && begin < end) {
if(target[middle] < match)
begin = middle + 1;
else if(target[middle] > match)
end = middle - 1;
middle = (begin + end) / 2;
}
return (target[middle] != match) ? -1 : middle;
}
//递归算法
//计算N的阶乘
int recursion(int num) {
if(num = 1)
return num;
else
return recursion(num-1)*num;
}
//斐波那契数列计算
int Febonachi(int num) {
if( num ==1 || num == 2)
return 1;
else
return Febonachi(num - 1) + Febonachi(num -2);
}