步步为营——算法初阶 1.算法概述
-------------------------------天禄貔貅 王冬冬 技术博客-------------------------------
1.1什么是算法?
字面义:算法就是用于计算的方法,通过这样的方法能够达到预期的结果。
专业定义:算法是模型分析的一组可行的、确定的和有穷的规则。
从程序设计角度:算法由一系列求解问题的指令构成,可以依据规则的输入在有限的时间内获得有效的输出结果。
算法的五个特征:有穷性、确切性、输入、输出、可行性。
1.2 算法的发展历史
周髀算经——>9世纪“算法”——>欧几里得算法(碾转相除法)
1.3 算法的分类
依照顾用来分类:基本算法、数据结构相关的算法、几何算法、图论算法、规划算法、数值分析算法、加密/解密算法、排序算法、查找算法、并行算法和数论算法等
依照结果的确定性分类:确定性算法和非确定性算法
依照算法的思路分类:递推算法、递归算法、穷举算法、贪婪算法、分治算法、动态规划算法和迭代算法
1.4 算法相关概念的区分
1.算法与公式的关系:公式是一种算法,但算法绝不全然等于公式,算法的形式能够更复杂,解决的问题更广泛
2.算法与程序的关系:学习一门程序语言非常easy。正确合理的运用算法来编写却是非常难的
3.算法与数据结构的关系:数据结构是数据的组织形式,能够用来表征特定的对象数据。算法往往依赖某种数据结构。数据结构+算法+程序语言=程序
1.5 算法的表示
自然语言表示、流程图表示、N-S图表示和伪代码表示
1.6 算法的性能评价
时间复杂度:算法运行所须要耗费的时间,时间越短算法越好。能够对算法代码进行评估。从而得到时间复杂度
空间复杂度:算法程序在计算机中运行所须要消耗的存储空间。可分为
(1)程序保存所须要的存储大小。也就是程序的大小
(2)程序在运行过程中所须要消耗的存储空间资源。比如程序运行过程中中间变量资源
-------------------------------天禄貔貅
王冬冬 技术博客-------------------------------
相关文章
- 使用ORL人脸库,通过GRNN网络和HOG特征提取的人脸识别算法matlab仿真
- C#,图像二值化(07)——全局阈值的迭代算法(Iteration Thresholding)及其源代码
- 4.2 路由算法与路由协议概述
- 字符串匹配算法之 ---- Boyer-Moore 算法
- 集成剪枝分类算法的Bagging集成学习算法示例
- 苹果官方回复故障原因:算法调整 需两个工作日恢复
- 谷歌新算法将大幅加快Chrome网页加载速度
- 华为OD机试 - IPv4 地址转换成整数 (JavaScript) | 机试题+算法思路+考点+代码解析 【2023】
- 华为OD机试 - 磁盘容量排序(Java) | 机试题+算法思路+考点+代码解析 【2023】
- 秒懂算法 | DP概述和常见DP面试题
- stm32工程和算法分享(9)--花样流水灯(双灯)
- 第十一周-通信信号侦察算法的主要步骤
- 程序员必须掌握的核心算法有哪些?
- 经典排序算法
- 27数据结构与算法分析之---二叉排序树