本文为大家分享了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. 模版方法模式/Template Method
  3. 分享一款博客园皮肤及其解决方案
  4. Paper之DL之BP:《Understanding the difficulty of training deep feedforward neural networks》
  5. opencv videoio无法读取rstp_使用一行Python代码从图像读取文本
  6. 鸿蒙os首批适配机型,鸿蒙OS正式版首批名单曝光,适配速度让人意外,8款机型恭喜了...
  7. 使用Spring Security 5进行密码编码器迁移
  8. 蔚来辅助驾驶致死,副总裁沈斐或遇更大危机
  9. ArcGIS 10.5 及 ArcGIS Server下载安装破解环境配置
  10. Java参数传递对象引用传递失效
  11. fenking是什么意思?
  12. 手游无限多开器安卓版_万能多开助手app下载-万能多开助手 安卓版v3.8.2-PC6安卓网...
  13. QGraphicsItem绘制重叠区域
  14. 猜想2010年IT十大表情
  15. Springboot整合JPA多数据源(Oracle+Mysql)
  16. Motorola RSD Lite刷机详细图文教程
  17. GMT北京时间表示的时间算法
  18. Presto on Apache Kafka 在 Uber 的大规模应用
  19. 史上最简单的Spring Security教程(八):用户登出成功LogoutSuccessHandler高级用法
  20. citespace连接Mysql_如何用CiteSpace整理数据--转自陈超美博士

热门文章

  1. 前端核心工作内容有哪些?
  2. Win 10 版NVIDIA GeForce GTX 1060显卡驱动的下载及飞桨(Paddle)的安装
  3. Windows10如何在文件夹打开DOS命令窗口
  4. 丁昊 北大计算机,北大、清华共17人!2018自主招生等类型入选名单公示,苏州333人!...
  5. MacOS删除开机启动项
  6. 如何在photoshop中等比例缩放一张图
  7. Synonyms 中文近义词工具包 -- 支持文本对齐,推荐算法,相似度计算,语义偏移,关键字提取,概念提取,自动摘要,搜索引擎等
  8. ESB 企业服务总线
  9. html透明度从零到1,CSS过渡不透明度仅从0到1,或其他过渡效果
  10. springBoot Vue 项目实战