递归实现二分法
2016-07-15 23:20
357 查看
编写一个F(n) = n*n + (n-1)(n-1) + … + 1 ;
用递归实现二分法:
#include<iostream> using namespace std; int sum(int n) { if(n == 1){ return 1; } int temp = 0; temp = (n*n)+ sum(n-1); return temp; } int main() { int result; result = sum(2); cout << result <<endl; return 0; } 5 Press any key to continue
用递归实现二分法:
#include<iostream> #include<stdio.h> #include<stdlib.h> #define length 10 using namespace std; int find_value(int str[],int left,int right,int value); int find_value (int str[],int left,int right,int value) { int med; med = (left + right)/2; if(left > right){ return -1; }else { if(value > str[med]){ return find_value( str ,med+1,right,value); }else if(value < str[med]){ return find_value (str,left,med -1,value); }else{ // printf("find! "); return med; } } } int main(int aegc,char **argv) { int str[length] = {0}; int i; for(i =0 ; i < length; i++) { str[i] = rand()%100; } int j; int k; for(j = 1;j<length;j++){ for(k = j -1;k >= 0 && str[k] > str[k+1];k--) { int temp = 0; temp = str[k]; str[k] = str[k+1]; str[k+1] =temp; } } for(i = 0 ; i < length ; i++) { printf(" %d",str[i]); } cout <<endl; int des = find_value(str,0,length-1,69); printf(" %d is find",des); return 0; } 0 24 34 41 58 62 64 67 69 78 8 is findPress any key to continue
相关文章推荐
- C#递归算法之分而治之策略
- 有关数据库SQL递归查询在不同数据库中的实现方法
- C#中的递归APS和CPS模式详解
- WinForm实现按名称递归查找控件的方法
- C#递归方法实现无限级分类显示效果实例
- 使用SqlServer CTE递归查询处理树、图和层次结构
- C#递归算法之打靶算法分析
- C#中的尾递归与Continuation详解
- C#递归实现显示文件夹及所有文件并计算其大小的方法
- php递归创建目录的方法
- PHP递归创建多级目录
- Javascript递归打印Document层次关系实例分析
- C#递归算法寻找数组中第K大的数
- C++使用递归方法求n阶勒让德多项式完整实例
- C#用递归算法解决经典背包问题
- oracle 使用递归的性能提示测试对比
- 使用curl递归下载软件脚本分享
- Perl脚本实现递归遍历目录下的文件
- JavaScript的递归之递归与循环示例介绍
- C# 递归查找树状目录实现方法