分治和结队编程

分治法的思想

分治法就是把一个大问题分解为规模较小的相同小问题,这些小问题的解合并起来就是大问题的解,但是小问题的规模要是一样且相同的,

不能分解出来的一个小问题是求最大值,而 另一个小问题是求最小值,这种情况是不适合用分治的

如果要处理一个较大规模的问题,比如说大整数的加减乘除,是可以分解成最末位的一个数和最末位的数的运算,与小学数学中的手算的思想的一致的

分治法和递归是紧密联系的。

分治法可以运用于:

二分搜索,

归并排序

快排

还有汉诺塔问题

大整数乘法 【https://www.cnblogs.com/little-kwy/archive/2017/09/30/7613642.html】(这个博客讲的很清楚:-)

结队编程

结队编程很容易发现对方写的bug,比较容易debug,队友可以给代码出自己想不到的样例,找bug就很容易

而且队友的想问题角度和自己的角度会有不一样,队友想出来的算法可能更优于自己,可能队友也能反驳自己想的一个很挫的算法,或者在和队友探讨的时候就能想出一个更优美的算法,这对自身的思维能力是有帮助的

结队编程总比自己一个人编程有意思多了XD

原文地址:https://www.cnblogs.com/wmlcn/p/11657571.html

时间: 2024-10-10 00:22:52

分治和结队编程的相关文章

结队编程第三次作业

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Simple_arithmetic //简易四则运算{ class Program { public static void Ni() { Console.WriteLine("请输入您想做的运算: "); Console.WriteLine("输入 [+] 表示加法"); C

结队编程1-四则运算(107、120)

[码市链接]https://git.coding.net/Luojiening/Teamwork1.git a.需求分析 将这个程序做成GUI(可以是Windows PC 上的,也可以是Mac.Linux,web,手机上的),成为一个有基本功能.一定价值的程序. 1.记录用户的对错总数,程序退出再启动的时候,能把以前的对错数量保存并在此基础上增量计算: 2.有计时功能,能显示用户开始答题后的消耗时间: 3.界面支持中文简体/中文繁体/英语,用户可以选择一种. b.功能设计 1.生成自定义数目算术

结队编程之总结篇

结对编程之总结及体会 短暂而又漫长的俩周时间,我和我的队友黄冠译将结队编程的作业刚刚做好.先介绍一下我的队友黄冠译,大学三年的同学,对他挺熟悉,知道他编程特别厉害,喜欢专研.这次老师给我们这样好的机会,让我们交流,共同完成一个小的项目.我觉得我的队友特别聪明,特别有思想,最开始我没有想到会用C语言写界面,我学的C语言只不过是出现一个小黑框而已,再无深入,我队友提出用C语言的图形库来写界面,我在那时候只有震惊.可能是学的知识有限,只知道C语言就是用来写个小黑框的还能干什么.当我的队友把这次结队编程

结队编程——电梯调度

这次老师布置的作业是:结队编程完成电梯的调度. 1.与我结队编程的队员是张舒瑞:http://www.cnblogs.com/bjzsr/ 附上我们一起讨论编程问题时的照片: 2.让我来介绍一下我的队员张舒瑞:他是一个很外向的人,性格很活泼,也很聪明.我们从大一到现在一直都挺熟的,所以在讨论过程中不存在什么交流障碍. 3.在这次结队编程中,他负责写的是查找电梯函数的部分,我负责的是接人函数的部分.他编的代码很精简,而我总觉得我写的代码很繁琐,所以他比较注重算法效率,而我是特别注重界面美观的那一个

日程管理系统代码维护第二弹(结队编程)

结队编程的好处: 第一:培养新人,促进沟通,提升团队整体能力. 第二:更好的知识共享和信息交流,促进团队协作. 第三:促进团队成员的沟通,提升团队凝聚力. 但由于我们一开始的工作模式都是个人的,现在开始了这个结队编程少许有些不适应.因为要开始慢慢习惯队友的工作方式,习惯她的思考方式.一开始策划时意见总会不统一,在两个人慢慢磨合的情况下,开始了正式的工作. 首先我们两个人通读了这个日程管理系统,找出其中的BUG并且改正,在改完BUG后,开始改进和美化.它的程序里个人中心的界面是空白的,我们先画好界

20165214 结队编程项目-四则运算(第二周)

20165214 第一次结队编程项目--四则运算第二周 需求分析 本周的结队编程想要实现一个四则运算系统,它可以自动生成n个计算题(本周不包括分数),其中n由我们输入.每输出一道题目,运行程序的人需要输入相应的答案,直到最后一道题做完.最后,统计正确率.然后,在这个基础上可以进行相应的功能扩展,比如语言支. 设计思路 我需要在上周的基础上对程序进行补充.在题目的生成上,应该再加上括号.÷./ 本周达成: ①能够随机生成n道题目,n由我们输入,最大长度可直接在程序里面修改: ②支持真分数运算: ③

二分法思想体会和结队编程感想

1.二分法思想 二分法在编程中是一种十分重要的算法,其主要思想是将问题区间不断的折半进而能更快的寻找到目标,二分法能将数据较大的问题规模很好地缩小. 使用条件:数组中的元素有序            时间复杂度:O(log2n) 二分法算法: int BIN(int a[], int key, int n) { int left = 0; int right = n - 1; while (left <= right) { int middle = (left + right) / 2; if

20175126Apollo 20175126《Java程序设计》结队编程项目——四则运算 第一周阶段总结

结队编程项目——四则运算 一.项目需求 自动生成小学四则运算题目(加.减.乘.除)统计正确率 支持整数 支持多运算符(比如生成包含100个运算符的题目) 支持真分数 需求分析: 生成四则运算:需要使用随机数生成,需要创造一个能实现计算功能的类. 支持多运算符:运算符也需要利用随机生成,并且不限个数. 支持真分数:需要用到生成分子.分母的函数,将分数化简等. 统计正确率:需要设置一个计算变量,并需要用一个判断正确的函数. 二.设计思路 首先根据需求分析,进行大体的设计: 生成题目→输入答案→判断正

20175314 结队编程项目——四则运算第二周

20175314 结队编程项目--四则运算第二周 一.需求分析 实现一个命令行程序,要求: 自动生成小学四则运算题目(加.减.乘.除) 支持整数 支持多运算符(比如生成包含100个运算符的题目) 支持真分数 统计正确率 能生成随机数 产生的算式要有括号 要建立堆栈,进行中缀转后缀,以及后续后缀的运算 能输入想要产生的题目数 能输入用户计算的答案 能够比较用户输入的答案是否正确 能够统计用户答题的正确率 二.设计思路 生成一个有加减乘除支持括号的算式,以字符串的形式输出,每个操作数或操作符中间都用