本文为大家分享了C语言实现分治法实例代码,供大家参考,具体内容如下

使用分治法求最大值

这个函数将数组a[l]...a[r]分成a[l],...,a[m]和a[m+1],...a[r]两部分,分别求出每一部分的最大元素(递归地),并返回较大的那一个作为整个数组的最大元素.如果数组大小是偶数,则两部分大小相等;如果是奇数,第一部分比第二部分的大小大1.

#include

#include

#include

#include

using namespace std;

#define OK 1

#define ERROR -1

#define TRUE 1

#define FALSE 0

typedef int Status;

int Max(int a[], int l, int r)

{

int u, v, m = (l + r) / 2;

//当区间中只有一个元素,递归终止,并将该元素返回

if(l == r)

return a[l];

//递归原区域的左边

u = Max(a, l, m);

//递归原区域的右边

v = Max(a, m+1, r);

//返回最大值

return (u>v)?u:v;

}

int main()

{

//举例验证

int a[7] = {6, 5, 3, 4, 7, 2, 1};

int maxx = Max(a, 0, 6);

printf("%d\n", maxx);

return 0;

}

汉诺塔的解

我们把盘子(递归地)移动到c上的方案是,将除了最下面的盘子之外的所有盘子移到b上,然后将做下面的盘子移到c上,然后(递归地)再将其他盘子移回到最下面的盘子上面.

#include

#include

#include

#include

using namespace std;

#define OK 1

#define ERROR -1

#define TRUE 1

#define FALSE 0

typedef int Status;

//输出盘子的移动

void shift(int n, char x, char y)

{

printf("Move %d disk: %c ---------> %c\n", n, x, y);

}

void hanoi(int n, char a, char b, char c)

{

//递归终止的条件

if(n == 1)

{

//将a上最下面的盘子移到c上

shift(n, a, c);

return;

}

//以c为中间轴,将a上的盘子移动到b上

hanoi(n-1, a, c, b);

shift(n, a, c);

//以a为中间轴,将b上的盘子移动到c上

hanoi(n-1, b, a, c);

}

int main()

{

//举例验证

hanoi(4, 'a', 'b', 'c');

return 0;

}

使用分治法在尺子上画刻度

要在尺子上画刻度线,我们首先在左半边画刻度线,然后在中间画一条最长的刻度线,最后在右半边画刻度线.

#include

#include

#include

#include

using namespace std;

#define OK 1

#define ERROR -1

#define TRUE 1

#define FALSE 0

typedef int Status;

//画线

void mark(int m, int h)

{

//由于无法实际表示刻度线之间的高度差,故用实际数字来体现

printf("%d ", h);

}

//划分该区域内的刻度

void rule(int l, int r, int h)

{

//找到该区域的中间

int m = (l + r) / 2;

//当高度大于0

if(h)

{

//划分小区域

rule(l, m, h-1);

//画线

mark(m, h);

//划分小区域

rule(m+1, r, h-1);

}

}

int main()

{

//举例验证

rule(0, 14, 4);

return 0;

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

c语言用分治法求最大最小值,C语言实现分治法实例相关推荐

  1. c语言坐标海伦公式,C语言:用海伦公式求三角形面积 , C语言编程问题,利用海伦公式求三角形面积...

    导航:网站首页 > C语言:用海伦公式求三角形面积 , C语言编程问题,利用海伦公式求三角形面积 C语言:用海伦公式求三角形面积 , C语言编程问题,利用海伦公式求三角形面积 匿名网友: 程序已 ...

  2. 求最大值最小值c语言指针,用C语言指针如何求最大值最小值

    问题描述:用C语言指针如何求最大值最小值 以下使一个简单的例子,用来说明指向函数的指针变量.定义两个函数max和min,分别用来求最大值和最小值.在主函数中根据用户输入的数字是1或者是2,使指针变量指 ...

  3. C语言小白初试 7-1 求一元二次方程的根 (20 分)

    7-1 求一元二次方程的根 (20 分) 本题目要求一元二次方程的根,结果保留2位小数. 输入格式: 输入在一行中给出3个浮点系数a.b.c,中间用空格分开. 输出格式: 根据系数情况,输出不同结果: ...

  4. C语言程序设计输入x求函数y,C语言程序设计实践(OJ)-初识函数

    2964: 查闰年 Description 大家知道如何判断某一年是否是闰年吗?这个问题可难坏了小编,小编在写一个查找m年到n年之间闰年的程序,却苦于判断闰年的函数不会写,据说 今天你有上机课,我就拿 ...

  5. c语言程序设计循环结构求奇数和,C语言程序设计实验报告循环结构程序设计.doc...

    C语言程序设计实验报告循环结构程序设计 C语言实验报告 课程__C程序设计_实验名称_循环结构程序设计__第 页 共 页 系 别__电气工程______________________ 实 验 日 期 ...

  6. c语言用循环函数求平方,用C语言程序三种循环语句分别编写程序,求1-100的平方值?...

    C语言用for语句求1~100中是3的倍数的所有整数之和,提供两种解法如下: 第一种:这是比较经典的方法: #include int main(){int sum=0;for(int i=1;i 由热 ...

  7. 分治算法求最大最小值c语言,[蓝桥杯][算法提高VIP]和最大子序列 (C语言代码)分治法...

    解题思路: 注意事项: 参考代码:#include #include #include #include #include #include using namespace std; const in ...

  8. c++分治法求最大最小值实现_程序员:算法导论,分治法、归并排序,伪代码和Java实现...

    分治法 我们首先先介绍分治法.分治法的思想:将原问题分解为几个规模较小但类似于原问题的子问题,递归地求解这些子问题,然后在合并这些子问题的解来解决原问题的解. 还是拿扑克牌举例子,假设桌上有两堆牌面朝 ...

  9. c++分治法求最大最小值实现_你所不了解的分治算法

    本文通过讲解3个基本问题的应用,提供了分治算法设计范式的实践.第一个例子是对数组中的逆序对进行计数的算法(第3.2节).这个问题与测量两个有序列表的相似性有关,适用于根据自己的知识向其他人按照他们的偏 ...

  10. c++分治法求最大最小值实现_快速实现分组统计,均数标准差 中位数(四分位数间距) 最大值 最小值,非常全...

    我们做统计分析的时候,变量统计描述结果的整理是非常头疼的事,变量少的时候,整理的工作量还能承受,一旦变量比较多或者需要多次更新数据,就会非常耗时耗力. 之前我们也多次介绍相应的包,详情可查看专辑< ...

最新文章

  1. 数组中只出现一次的数字
  2. 社团管理信息系统C语言,学生社团信息管理系统.doc
  3. Maven项目整合提示:Maven Missing artifact xxx:jar 错误解决方案
  4. java unit test怎么写_Java J Unit Test
  5. 隐马尔可夫模型HMM学习备忘
  6. linux通过mail命令发送到外部邮件
  7. js实现点击按钮传值
  8. 快速格式化代码(HTML、CSS)
  9. 大量原创视频教程分享(01)---XSL语法教程
  10. 计算机控制技术证书可以考吗,计算机控制技术专业可考哪些资格证书
  11. OCJP认证有什么用
  12. laravel 递归 无限层级分类
  13. 机顶盒网络包获取方式
  14. linux 文件去重
  15. 思岚激光雷达rplidar从ROS 1到ROS 2的移植
  16. 51ditu maps API 使用——显示所有信息——点击链接显示对应标记浮窗[修]
  17. python爬虫登录下载_Python爬虫实战入门四:使用Cookie模拟登录——获取电子书下载链接...
  18. 微信小程序开发报错及解决记录
  19. 求函数在x0处的增量_设函数y=2x^2,已知其在点x0处自变量增量时,对应函数增量的线性主部为-0.6,则x0=()A.0B.1C.-0....
  20. 服务器电话销售话术,电话销售必看:让客户无法拒绝的13个经典话术

热门文章

  1. StarUML画流程图
  2. DOS命令行界面打开文件
  3. php读取写入,php操作文件(读取写入文件)
  4. php怎么在图片上加文字居中,php GD库为图片添加文字且自动换行,水平居中
  5. 你好,放大器——输入偏置电流(Input bias current,Iв)
  6. OpenKG祝大家端午安康
  7. 利用python随机生成姓名
  8. vuejs中根据用户名生成头像背景色
  9. redis-(error) CLUSTERDOWN Hash slot not served
  10. html超链接下划线改虚线_怎么把下划线变成虚线