博客
关于我
Java-算法分析及其优劣判断
阅读量:194 次
发布时间:2019-02-28

本文共 699 字,大约阅读时间需要 2 分钟。

同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。

算法分析的目的在于选择合适算法和改进算法。

一个算法的评价主要从时间复杂度和空间复杂度来考虑。

1、时间复杂度

算法的时间复杂度是指执行算法所需要的时间。一般来说,计算机算法是问题规模n 的函数f(n),算法的时间复杂度也因此记做

  T(n)=Ο(f(n))

因此,问题的规模n 越大,算法执行的时间的增长率与f(n) 的增长率正相关,称作渐进时间复杂度(Asymptotic Time Complexity)。

2、空间复杂度

算法的空间复杂度是指算法需要消耗的内存空间。其计算和表示方法与时间复杂度类似,一般都用复杂度的渐近性来表示。同时间复杂度相比,空间复杂度的分析要简单得多。

以上两点越小越好。

3.正确性

算法的正确性是评价一个算法优劣的最重要的标准。

正确性是指所写的算法能满足具体问题的要求,即对任何合法的输入,算法都会得出正确的结果。

4.可读性

算法的可读性是指一个算法可供人们阅读的容易程度。

 
可读性是指算法被写好之后,该算法被理解的难易程度。一个算法可读性的好坏十分重要,如果一个算法比较抽象,难于理解,那么这个算法就不易交流和推广,对于修改、扩展、维护都十分不利。所以在写算法的时候,要尽量将该算法写得简明易懂。

5.健壮性

健壮性是指一个算法对不合理数据输入的反应能力和处理能力,也成为容错性。

一个程序完成后,运行该程序的用户对程序的理解因人而异,并不能保证每一个人都能按照要求进行输入,健壮性就是指当输入的数据非法时,算法也会做出相应的判断,而不会因为输入的错误造成程序瘫痪。

参考:

转载地址:http://csss.baihongyu.com/

你可能感兴趣的文章
mysql创建数据库和用户 并授权
查看>>
mysql创建数据库指定字符集
查看>>
MySql创建数据表
查看>>
MySQL创建新用户以及ERROR 1396 (HY000)问题解决
查看>>
MySQL创建用户与授权
查看>>
MySQL创建用户报错:ERROR 1396 (HY000): Operation CREATE USER failed for 'slave'@'%'
查看>>
MySQL创建索引时提示“Specified key was too long; max key length is 767 bytes”
查看>>
mysql初始密码错误问题
查看>>
Mysql删除重复数据通用SQL
查看>>
mysql判断某一张表是否存在的sql语句以及方法
查看>>
mysql加入安装策略_一键安装mysql5.7及密码策略修改方法
查看>>
mysql加强(1)~用户权限介绍、分别使用客户端工具和命令来创建用户和分配权限
查看>>
mysql加强(3)~分组(统计)查询
查看>>
mysql加强(4)~多表查询:笛卡尔积、消除笛卡尔积操作(等值、非等值连接),内连接(隐式连接、显示连接)、外连接、自连接
查看>>
mysql加强(5)~DML 增删改操作和 DQL 查询操作
查看>>
mysql加强(6)~子查询简单介绍、子查询分类
查看>>
mysql加强(7)~事务、事务并发、解决事务并发的方法
查看>>
MySQL千万级多表关联SQL语句调优
查看>>
mysql千万级大数据SQL查询优化
查看>>
MySQL千万级大表优化策略
查看>>