博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
算法概述
阅读量:4039 次
发布时间:2019-05-24

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

算法是什么?

算法是解决问题的一种方法或者一个过程,更严格的讲,算法是由若干条指令组成的有穷序列,而且满足以下四条性质:

a:输入。参数

b:输出。返回结果

c:确定性。指令语义语法无二义性

d:有限性。执行次数有限

程序是什么?

程序是算法采用某种设计语言的具体实现。程序可以不满足算法的四条性质。

算法的复杂性分析

算法的复杂性是指运行该算法所需要的计算机资源是多少,多则复杂性高,少则复杂性低。对计算机来说,最重要的资源是时间和(存储器)空间。因此算法的复杂性分为时间复杂性和空间复杂性。对于任意给定的问题要尽可能设计复杂性低的算法;对给定问题的多种算法选择发杂性低的算法。时间资源称为时间复杂度,空间资源常委农工委空间复杂度。这两种复杂度表示中都跟问题的规模和算法的输入由密切的关系。复杂度的常用表示由三种,最优情况下的算法复杂度,平均情况下的算法复杂度,最坏情况下的复杂度。实践表明,可操作性最好且最有实际价值的是醉话情况下的复杂度。随着问题的规模的不断扩大,算法的复杂度会出现一个最大的上限和一个最小的下限,采用数学中的夹逼定理可以得到最坏情况下的一个上限近似函数,我们一般选用这个上限函数来表示算法的复杂度。

算法复杂度不但是设计算法时一个可以评估算法的一个工具,也是选取合适算法的一个指导工具。以后介绍的其他算法相关的内容都会用到算法复杂度来衡量。

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

你可能感兴趣的文章
移动端自动化测试-Mac-IOS-Appium环境搭建
查看>>
Selenium之前世今生
查看>>
Selenium-WebDriverApi接口详解
查看>>
Selenium-ActionChains Api接口详解
查看>>
Selenium-Switch与SelectApi接口详解
查看>>
Selenium-Css Selector使用方法
查看>>
Linux常用统计命令之wc
查看>>
测试必会之 Linux 三剑客之 sed
查看>>
Socket请求XML客户端程序
查看>>
Java中数字转大写货币(支持到千亿)
查看>>
Java.nio
查看>>
函数模版类模版和偏特化泛化的总结
查看>>
VMware Workstation Pro虚拟机不可用解决方法
查看>>
最简单的使用redis自带程序实现c程序远程访问redis服务
查看>>
redis学习总结-- 内部数据 字符串 链表 字典 跳跃表
查看>>
iOS 对象序列化与反序列化
查看>>
iOS 序列化与反序列化(runtime) 01
查看>>
iOS AFN 3.0版本前后区别 01
查看>>
iOS ASI和AFN有什么区别
查看>>
iOS QQ侧滑菜单(高仿)
查看>>