10 2016 档案
摘要:当数据之间存在一种或者多种特定关系的时候,我们就称这种关系为结构。通常情况下,数据之间有三种基本结构,线性结构,树形结构,网状结构。 线性表数据结构具有以下特征: <1>有且只有一个“首元素”。 <2>有且只有一个“末元素”。 <3>除末元素外,其余元素均有唯一的后继元素。 <4>除首元素外,其余元
阅读全文
摘要:算法评价原则 正确性,通过执行算法可以得到正确的结果,这是算法设计的最低要求。设置各种不同的条件和参数去测试。 高效性,算法进行的基本操作的次数。时间衡量与硬件关系较大,所以时间并不是好的衡量指标。 空间性,算法编写的程序在执行的时候所需要的最大存储空间。随着硬件设备性能的提升, 这一点已经不是很关
阅读全文
摘要:在程序设计语言中,可以使用随机函数来模拟自然界中发生的不可预测的情况。C语言中使用srand()函数和rand()函数可以生成随机数。使用这两个函数需要包含time.h头文件。 实例一,猜数字游戏。使用模拟算法编写一个猜数字游戏,由计算机随机生成一个1-100之内的整数,然后由用户来猜这个数,根据用
阅读全文
摘要:试探法,也成为回溯法,是一种系统的搜索问题的方法,下棋的时候棋手采用的就是试探法。 算法思路: 为了求得问题的解,先选择某一种可能的情况进行咨询,在试探过程中,一旦发现原来选择的假设情况是错误的,就得退回一步重新选择。继续向前试探,如此反复进行。直到得到解或者证明无解。 实例,生成彩票号码组合 假设
阅读全文
摘要:贪婪算法的基本思路:从问题的某一个初始解出发,逐步逼近给定的目标,以尽可能快的求得更好的解。当达到算法中的某一步不能再继续前进时,就停止算法,给出近似解。 由贪婪算法的特点和思路可以看出来,该算法存在以下问题: 1.不能保证最后的解是最优的 2.不能用来求最大或者最小解问题 3.只能求满足某些约束条
阅读全文
摘要:使用分治算法设计程序时,一般可以按照以下步骤进行: <1>分解:将要求解的问题划分成若干规模较小的同类问题。 <2>求解:当子问题划分得足够小时,用较简单的方法解决。 <3>合并:按求解问题的要求,将子问题的解逐层合并,即可构成最终的解。 例一:比赛赛程安排。
阅读全文
摘要:递归算法是一种直接或间接调用自身的算法。一般通过函数或者子过程来完成,在函数或子过程的内部,编写代码直接或者间接的调用自己,即可完成递归操作。 例一:求阶乘 例二:十进制转化为其他数制,除n取余法
阅读全文
摘要:枚举法的本质就是从所有候选答案中去搜索正确的解,使用该算法需要满足两个条件 <1>可预先确定候选答案的数量 <2>候选答案的范围在求解之前必须有一个确定的集合 例一,求解哪些数字的组合满足下图所示的格式 例二,在等号左边的数字之间填入加减乘除任意一个符号,使等式成立。 需要考虑的问题 <1>当填入除
阅读全文
摘要:递推算法使用“步步为营”的方法,不断利用已有的信息推导出新的东西。 顺推法:从已知条件出发,逐步推算出要解决问题的方法。例如斐波拉契数列就可以通过顺推法不断递推算出新的数据。 逆推法:从已知的结果出发,用迭代表达式逐步推算出问题开始的条件。 斐波那契数列的代码实现 逆推算法。如果一个大学生要在四年(
阅读全文
摘要:#include int main(void){ int realPrice, price=0, i=0; printf("亲,请输入商品的真实价格:"); scanf("%d",&realPrice); system("cls"); printf("请尝试输入您认为的价格:\n"); while(realPrice != price){ i++; printf("参与者:...
阅读全文
摘要:程序=数据结构+算法+程序设计语言 程序设计中,数据结构和算法是最重要的,是编程的灵魂。 数据结构是算法实现的基础,算法总是依赖于某种数据结构来实现的。往往是在发展一种算法的时候,构建了适合于这种算法的数据结构。一种数据结构如果脱离了算法,也就没有存在的价值了。 解决任何一个实际问题,都需要通过一定
阅读全文
浙公网安备 33010602011771号