【算法学习】1.渐进复杂性
算法导论作者的课程(英文有字幕)
顺便学一下英语(x
第一集十六分钟左右正片开始。
算法
算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。
我的理解就是“解题方案”。
特点:有输入,有输出,确定性,有限性
运行时间
取决于本身的输入、输入规模,运行机器等等。
对算法的分析
算法的复杂性C包括时间复杂性T和空间复杂性S
C是一个三元函数,即C=F(N,I,A).
其中N指问题的规模,I指输入的规模,A指算法本身。
T(n)表示程序运行需要的时间。由以下几种情况进行决定最终的T(n)。
最坏情况Wast-case
T(n)表示输入规模为n时,程序运行所需要的(可能的)最长时间。
平均情况Average-case
T(n)表示输入规模为n时,所有可能的输入情况下,程序运行需要的期望时间。
最好情况Best-case
渐进复杂性
用于n无穷大的情况。
取一个公式的最高阶项。
可以把公式看成一个算法需要运行的时间与n的关系。
大O表示法【算法运行时间的上界
取得是最高阶项除去它的系数
用上图表示,则这个算法的大O复杂度为O(n^3),即算法的时间增长最多像 n^3那样快。
阶越低越有价值。
对于两段复杂性不同的程序,选择比较复杂的那一段。
大Ω表示法【算法运行时间的下界
阶越高越有价值。
复杂性排序
常数级<对数级<线性级<多项式级<指数级<阶乘级
【我要去啃一下算法了,因为想考一下蓝桥杯。安卓的学习应该也不会停,因为那是我的小组任务,不能拖后腿。我发誓这几天没学studio只是因为身体不舒服!!】
【刚开始学东西会分不清什么重要什么不重要。就像小时候1+1=2也要记个小笔记。求饶】
【算法学习】1.渐进复杂性相关推荐
- 算法学习四:算法性能分析理论基础——函数增长与渐进分析
算法学习四:算法性能分析理论基础--函数增长与渐进分析 在算法性能分析过程中,特别是在算法运行效率分析中,我们经常使用渐渐分析法,它使我们在分析算法性能时不必纠结于不同硬件平台的差异性,着重考虑算法的 ...
- cart算法 java_CART算法学习及实现
CART算法学习及实现 作者:大卡卡 撰写时间:2011.9.29 1.算法介绍 分类回归树算法:CART(Classification And Regression Tree)算法采用一种二分递 ...
- AI 自动研发机器学习系统,DeepMind 让算法学习强化学习
人工智能研发的一个大方向是用AI系统来自动化开发AI系统.虽然这一目标尚未实现,但目前的进展让已足够令人人震惊.本文介绍了最新的一些进展,包括伯克利让算法自我优化.MIT自动生成神经网络架构,以及在这 ...
- Python预测 数据分析与算法 学习笔记(特征工程、时间序列)
微信公众号:数学建模与人工智能 GitHub - QInzhengk/Math-Model-and-Machine-Learning 第3章 探索规律 3.1 相关分析 相关关系是一种与函数关系相区别 ...
- c语言将AOE网络的数据写入TXT文档中,数据结构与算法学习辅导及习题详解.张乃孝版-C/C++文档类资源...
数据结构与算法学习辅导及习题详解.张乃孝版.04年10月 经过几年的努力,我深深体会到,编写这种辅导书要比编写一本湝通教材困难得多. 但愿我的上述理想,在本书中能够得以体现. 本书的组织 本书继承了& ...
- 拿下斯坦福和剑桥双offer,00后的算法学习之路
董文馨,00后,精通英语,西班牙语.斯坦福大学计算机系和剑桥大学双Offer,秋季将进入斯坦福大学学习. 10岁开始在国外上学:12岁学Scratch: 13岁学HTML & CSS: 14岁 ...
- 好久没有看到这么有建设性德文章,由衷地赞叹《知其所以然地学习(以算法学习为例)》-By 刘未鹏(pongba)
知其所以然地学习(以算法学习为例) By 刘未鹏(pongba) C++的罗浮宫(http://blog.csdn.net/pongba) Updated(2008-7-24):更新见正文部分,有标注 ...
- 原创 | 初学者友好!最全算法学习资源汇总(附链接)
在计算机发展飞速的今天,也许有人会问,"今天计算机这么快,算法还重要吗?"其实永远不会有太快的计算机,因为我们总会想出新的应用.虽然在摩尔定律的作用下,计算机的计算能力每年都在飞快 ...
- 基本算法学习(一)之希尔排序(JS)
参考书: 严蔚敏-数据结构 希尔排序(Shell's Sort) 希尔排序又称"缩小增量排序",归属于插入排序一类,简单来说,和我们的插入排序比,它更快. 奇妙的记忆点: 内排序( ...
- 大顶堆删除最大值_算法学习笔记(47): 二叉堆
堆(Heap)是一类数据结构,它们拥有树状结构,且能够保证父节点比子节点大(或小).当根节点保存堆中最大值时,称为大根堆:反之,则称为小根堆. 二叉堆(Binary Heap)是最简单.常用的堆,是一 ...
最新文章
- python翻译成计算机是啥_基于Python的业英语翻译器实现
- 荣耀开年第一机!荣耀60 SE今日官宣:搭载天玑900处理器
- 为什么很少人学汇编_要想精通C语言,必须先学习汇编吗
- ObjectDetecionAPI TypeError: __new__() got an unexpected keyword argument 'serialized_options'
- 大数据应用智能交通有哪些意义
- struts2的package和result的标签的属性
- C语言的printf输出格式控制
- 信息检索与利用(第三版)第五章 信息法与综合性信息检索
- 快速排序时间复杂度数学证明
- [每日一氵]笔记本电脑充电后卡得一批
- Markdown使用指南
- 微信大更新,黄脸表情会动了,还能炸群!还有状态、浮窗...张小龙剧透的功能全来了...
- 法航AF447失事,机上有228人
- 像素值为什么归一化?归一化作用?
- Javascript的优点和缺点
- FPGA——FIFO
- 利用Python调用云Api实现多地域同步运行TAT命令
- 什么是RAIN RFID?
- Android9--android 10.0 去掉未知来源弹窗 默认授予安装未知来源权限
- 【小白】SQLyog下载安装配置篇全攻略