算法概述

什么是算法?

算法是模型分析的一组可行的、确定的和有穷的规则。

从计算机程序设计的角度看,算法由一系列求解问题的指令构成,能够根据规范的输入,在有限的时间内获得有效的输出结果。算法代表了用系统的方法来描述解决问题的一种策略机制。

算法的5个特征:

1、有穷性

算法的指令或者步骤的执行次数是有限的,执行时间也是有限的。

2、确切性

算法的每一个指令或者步骤都必须有明确的定义和描述。

3、输入

有相应的输入条件,用来刻画运算对象的初始情况。

4、输出

有明确的输出结果。

5、可行性

算法的执行步骤必须是可行的,切可以在有限的时间内完成。

算法分类

1、按照应用来分类
按照算法的应用领域,也就是解决的问题,算法可以分为基本算法、数据结构相关的算法、几何算法、图论算法、规划算法、数值分析算法、加密/解密算法、排序算法、查找算法、并行算法和数论算法等
2、按照确定性来分类
按照算法的结果的确定性来分类,可以分为确定性算法和非确定性算法。
  • 确定性算法:在有限的时间内完成计算,得到的结果是唯一的,切经常取决与输入值
  • 非确定性算法:在有限的时间内完成计算,但得到的结果往往不是唯一的,也就是存在多值性
3、按照算法的思路来分类,算法可以分为递推算法、递归算法、穷举算法、贪婪算法、分治算法、动态规划算法和迭代算法等多种。

算法与数据结构、程序的关系

程序设计语言是算法实现的一种形式,也就是一种工具。
数据结构是数据的组织形式,可以用来表征特定的对象数据。因为不同的数据结构所采用的处理方法不同,计算的复杂度也不同,所以算法往往是依赖于某种数据结构的。数据结构是算法实现的基础。
可得如下公式:
数据结构+算法+程序设计语言=程序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值