您的位置:首页 > 理论基础 > 数据结构算法

大话数据结构——算法

2016-05-10 21:36 309 查看
算法:算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。

为什么把数据结构和算法一起说?

想想罗密欧与朱丽叶,梁山伯和祝英台,少了一个你总会觉得奇怪吧。

算法的五个基本特性:

输入:有0个或多个输入;

输出:有1个或多个输出;

有穷性:步骤有限,不能无穷循环下去;

确定性:有确定的含义,不能出现二义性;

可行性:每一步都能通过有限次数完成。

算法设计的要求:

正确性:能正确反映问题,得到问题的正确答案;

可读性:便于阅读、理解和交流;

健壮性:即使输入不合法,算法也能处理,而不是出现异常或中止;

时间效率高和存储量低:像生活中人们所希望的花最少时间,办最大的事。

算法效率的度量方法:

事后统计法:利用测试好的程序和数据,用计算机测试运行时间判断算法的优劣。这种方法有很大缺陷,必须事先设计好程序,风险大;时间很可能依赖于计算机硬件配置;算法测试的数据选择困难,如数据量大小会影响运行时间。

事前分析估算法:在程序编制前,进行估算。取决于以下因素:算法采用的策略、方法(算法好坏的根本);编译产生的代码质量(软件);问题的输入规模;机器指令执行的速度(硬件条件)。

算法时间复杂度推导方法:

用行数1取代运行时间中的所有加法常数;例如,f(n)=1,f(n)=5等的时间复杂度都是O(1),也称为常数街;

在修改后的运行次数函数中,只保留最高阶的项;

如果最高阶存在且不是1,则去除与这个项相乘的常数。

得到的结果就是大O阶。



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: