Java-算法分析及其优劣判断
来源:互联网 发布:三洋微波炉怎么样知乎 编辑:程序博客网 时间:2024/05/20 10:55
同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。
算法分析的目的在于选择合适算法和改进算法。
一个算法的评价主要从时间复杂度和空间复杂度来考虑。
1、时间复杂度
算法的时间复杂度是指执行算法所需要的时间。一般来说,计算机算法是问题规模n 的函数f(n),算法的时间复杂度也因此记做
T(n)=Ο(f(n))
因此,问题的规模n 越大,算法执行的时间的增长率与f(n) 的增长率正相关,称作渐进时间复杂度(Asymptotic Time Complexity)。
2、空间复杂度
算法的空间复杂度是指算法需要消耗的内存空间。其计算和表示方法与时间复杂度类似,一般都用复杂度的渐近性来表示。同时间复杂度相比,空间复杂度的分析要简单得多。
以上两点越小越好。
3.正确性
算法的正确性是评价一个算法优劣的最重要的标准。
正确性是指所写的算法能满足具体问题的要求,即对任何合法的输入,算法都会得出正确的结果。
4.可读性
算法的可读性是指一个算法可供人们阅读的容易程度。
可读性是指算法被写好之后,该算法被理解的难易程度。一个算法可读性的好坏十分重要,如果一个算法比较抽象,难于理解,那么这个算法就不易交流和推广,对于修改、扩展、维护都十分不利。所以在写算法的时候,要尽量将该算法写得简明易懂。
5.健壮性
健壮性是指一个算法对不合理数据输入的反应能力和处理能力,也成为容错性。
一个程序完成后,运行该程序的用户对程序的理解因人而异,并不能保证每一个人都能按照要求进行输入,健壮性就是指当输入的数据非法时,算法也会做出相应的判断,而不会因为输入的错误造成程序瘫痪。
参考:
如何衡量算法的优劣
阅读全文
0 0
- Java-算法分析及其优劣判断
- 算法分析及其优劣判断
- Java排序算法实现及优劣分析
- 各种排序算法及其优劣
- 分析排序算法的优劣
- Java RMI 简介及其优劣势总结
- Java RMI 简介及其优劣势总结
- Java RMI 简介及其优劣势总结
- 分析各种排序算法的优劣
- 经典排序算法分析及其Java实现
- 算法及其分析简介
- 算法及其分析
- JAVA垃圾回收机制的意义及其算法分析
- 各种排序算法的分析及其Java代码的实现
- 横向技术分析C#、C++和Java优劣
- 横向技术分析C#、C++和Java优劣
- 横向技术分析C#、C++和Java优劣
- Java编程程序比C++的优劣分析
- 数据结构之串
- AttributeError: 'Bunch' object has no attribute 'data'
- 自然常数e
- 谈谈Spring中的IOC和AOP概念
- Photoshop抠图(磁性套索工具及几个常用案例)
- Java-算法分析及其优劣判断
- Dcm4chee学习笔记(三)--StoreSCP服务流程剖析
- Apache Kafka 入门
- Golang 服务器端对客户端的证书进行校验(双向证书校验)
- 适用于<python机器学习与实践>的twenty_newsgroups.py文件内容
- Docker常用命令详解
- Java并发JUC包之ConcurrentSkipListMap深入分析
- U-Boot编译——System.map与u-boot.map
- leetcode第十四周解题总结--二分查找