【算法初阶1】算法概述
2016-01-03 19:49
176 查看
-------------------------------天禄貔貅 王冬冬 技术博客-------------------------------
1.1什么是算法?
字面义:算法就是用于计算的方法,通过这种方法可以达到预期的结果。
专业定义:算法是模型分析的一组可行的、确定的和有穷的规则。
从程序设计角度:算法由一系列求解问题的指令构成,能够根据规则的输入在有限的时间内获得有效的输出结果。
算法的五个特征:有穷性、确切性、输入、输出、可行性。
1.2 算法的发展历史
周髀算经——>9世纪“算法”——>欧几里得算法(碾转相除法)
1.3 算法的分类
按照应用来分类:基本算法、数据结构相关的算法、几何算法、图论算法、规划算法、数值分析算法、加密/解密算法、排序算法、查找算法、并行算法和数论算法等
按照结果的确定性分类:确定性算法和非确定性算法
按照算法的思路分类:递推算法、递归算法、穷举算法、贪婪算法、分治算法、动态规划算法和迭代算法
1.4 算法相关概念的区分
1.算法与公式的关系:公式是一种算法,但算法绝不完全等于公式,算法的形式可以更复杂,解决的问题更广泛
2.算法与程序的关系:学习一门程序语言很容易,正确合理的运用算法来编写却是很难的
3.算法与数据结构的关系:数据结构是数据的组织形式,可以用来表征特定的对象数据,算法往往依赖某种数据结构,数据结构+算法+程序语言=程序
1.5 算法的表示
自然语言表示、流程图表示、N-S图表示和伪代码表示
1.6 算法的性能评价
时间复杂度:算法执行所需要耗费的时间,时间越短算法越好。可以对算法代码进行评估,从而得到时间复杂度
空间复杂度:算法程序在计算机中执行所需要消耗的存储空间。可分为
(1)程序保存所需要的存储大小,也就是程序的大小
(2)程序在执行过程中所需要消耗的存储空间资源,例如程序执行过程中中间变量资源
-------------------------------天禄貔貅
王冬冬 技术博客-------------------------------
1.1什么是算法?
字面义:算法就是用于计算的方法,通过这种方法可以达到预期的结果。
专业定义:算法是模型分析的一组可行的、确定的和有穷的规则。
从程序设计角度:算法由一系列求解问题的指令构成,能够根据规则的输入在有限的时间内获得有效的输出结果。
算法的五个特征:有穷性、确切性、输入、输出、可行性。
1.2 算法的发展历史
周髀算经——>9世纪“算法”——>欧几里得算法(碾转相除法)
1.3 算法的分类
按照应用来分类:基本算法、数据结构相关的算法、几何算法、图论算法、规划算法、数值分析算法、加密/解密算法、排序算法、查找算法、并行算法和数论算法等
按照结果的确定性分类:确定性算法和非确定性算法
按照算法的思路分类:递推算法、递归算法、穷举算法、贪婪算法、分治算法、动态规划算法和迭代算法
1.4 算法相关概念的区分
1.算法与公式的关系:公式是一种算法,但算法绝不完全等于公式,算法的形式可以更复杂,解决的问题更广泛
2.算法与程序的关系:学习一门程序语言很容易,正确合理的运用算法来编写却是很难的
3.算法与数据结构的关系:数据结构是数据的组织形式,可以用来表征特定的对象数据,算法往往依赖某种数据结构,数据结构+算法+程序语言=程序
1.5 算法的表示
自然语言表示、流程图表示、N-S图表示和伪代码表示
1.6 算法的性能评价
时间复杂度:算法执行所需要耗费的时间,时间越短算法越好。可以对算法代码进行评估,从而得到时间复杂度
空间复杂度:算法程序在计算机中执行所需要消耗的存储空间。可分为
(1)程序保存所需要的存储大小,也就是程序的大小
(2)程序在执行过程中所需要消耗的存储空间资源,例如程序执行过程中中间变量资源
-------------------------------天禄貔貅
王冬冬 技术博客-------------------------------
相关文章推荐
- 【Android 界面效果31】Android--侧滑菜单应用的实现
- 【Android 界面效果30】Android中ImageSwitcher结合Gallery展示SD卡中的资源图片
- 【Linux/Ubuntu学习1】Linux /etc 目录详解
- 宏碁E5-471G-57WZ拆机加内存图解
- MongoDB的数据类型
- 8086实时时钟实验(二)——《x86汇编语言:从实模式到保护模式》读书笔记06
- 【Mood-8】IT男!五更天!
- 【Android 界面效果29】研究一下Android滑屏的功能的原理,及scrollTo和scrollBy两个方法
- 【Android 界面效果28】Android应用中五种常用的menu
- 【开源项目4】Android ExpandableListView
- 【Android 界面效果27】利用ViewPager、Fragment、PagerTabStrip实现多页面滑动效果
- 【Android 界面效果26】listview android:cacheColorHint,android:listSelector属性作用
- 【Android 界面效果25】android中include标签的使用
- 【Android 界面效果24】Intent和PendingIntent的区别
- 【Android 界面效果23】LayoutInflater作用及使用
- 【Android Api 翻译4】android api 完整翻译之Contacts Provider (学习安卓必知的api,中英文对照)
- 【Android Api 翻译3】android api 完整翻译之Application Fundamentals (学习android必须知道的)
- Google是不是真的不能用了?非常奇怪的问题
- 建造者模式
- Android性能优化----图片三级缓存