c++数据结构与算法

算法
计算机算法解决计算问题时,能够给出正确的答案,有效的利用资源。
正确性:我们通常会精确的定义一个正确的解决方案设计的内容。然而对于某些算法很难判定是否给出了正确答案。不过我们可以接受可能会产生的错误算法,只要这个算法的错误频率在可被控制的范围之内。对于另外一种算法—近似算法,正确性也是一个需要重考量的问题。近似算法适合于优化问题。即根据一些量化测度来寻找最优解的问题。“近似最优”就是近似算法输出的解的量化测量值介于最优解的量化测量值的一个已知因子之内。只要指定了目标因子,我们就可以说一个近似算法的正确解是任意一个量化测度值在最优解目标因子之内的解决方案。
资源利用:针对一个可以输出正确值的算法,时间便是我们用来衡量算法效率的主要方式,但不是唯一。由于一个算法必须在可用的内存空间上运行因此我们还需要考虑算法需要占用多大的内存空间,除此之外还需要考虑:网络通信,随机比特,磁盘操作。算法运行的时间还与算法本身之外的几个因素有关:计算机的速度,实现算法的编程语言,编译器或者解释器,程序员编写程序的技术,正运行的程序并行执行其他进城。为了衡量一个算法的速度,我们需要确定算法的输入规模其次是随着输入规模的增加,表示运行时间的函数如何增长,运行时间的增长速率。我们仅仅只关心时间的增长量级。为了表示一项任务所花的时间,我们必须做出一些简单的假设。我们假定每步单独的操作—无论是一个算术运算,比较,变量赋值,给数组标记索引操作,或者是程序调用,从程序中返回操作结果—均会花掉不依赖于输入规模的固定时间。操作不同,各个操作所花费的时间可能不同,但放一个步骤仅仅是有多个简单的操作叠加而成时,该步骤会花费常量时间,我们约定执行第i步所花费的时间为t,其中t是不依赖于输入规模所输入的规模n的常量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值