文档章节

算法学习笔记一学习算法的三个原因

Angelks
 Angelks
发布于 2017/01/24 15:22
字数 987
阅读 43
收藏 0


一、Question:

        问:二十一世纪比性能更重要的是什么?

        答:安全 、可扩展性、用户体验友好等。答案太多太多。

二、既然如此我们为什么还要学习算法?      

      1、性能直接决定着可行还是不可行。例如对于实时性的需求:执行速度不够快或者是占用过多的内存,显然这个程序不能为你工作。算法总是处于解决问题的最前沿,如果我们尝试重做别人十年前就做过的东西,某种意义上,性能也许并不重要。但如果我们正积极尝试其他人没有成功的事情——别人之所以没有成功 可能是因为他们的程序太耗时间或者太占内存,而算法能够将不可行变成可行。

       2、算法是一种描述程序行为的语言,它是让程序最为简洁的思考方式。 算法在计算机领域中扮演的角色就如同经济中的货币一般,尽管水、食物等对于生命而言比货币重要,但是你可以用货币去换取这些东西。同理,性能是确保良好用户体验、安全等的前提。为了实现更多功能,很多程序员会用Java去写程序,尽管它比C写的程序要慢得多。如果说用Java写程序会损失三倍的性能,但是这是值得的,因为Java提供面向对象的特性以及异常机制等。所以大家能接受三倍性能的损失。这就是我们为什么需要性能。我们需要把性能作为支付其他东西的“货币”。这就是性能位于最底层的原因,因为它是衡量其他特性的标准。

        3、算法充满乐趣,速度永远让人渴望,不是吗?人们为什么喜欢赛车、赛马、滑雪还有火箭、跑车?因为我们向往速度。 

三、算法的用途

1、互联网领域:为数据传输寻找好的路由,搜索引擎快速找到特定信息所在的网页。

2、电子商务:电子商务使用的核心技术包括公钥密码和数字签名都是以数值算法和数论为基础的。

3、各行各业:按最有益的方式分配稀有资源。

……

四、练习(新人观点 仅供参考 欢迎指正)

1.1-1需要排序的例子:打扑克牌

1.1-2:效率的度量:功率 

1.1-3:栈:
          a、快速访问。
          b、没有必要明确的创建分类变量,因为它是自动管理的。
          c、空间被CPU高效地管理着,内存不会变成碎片。
          d、只有局部变量
          e、受限于栈大小(取决于操作系统)
          f、变量不能调整大小。
        堆:
          a、变量可以被全局访问     
          b、没有内存大小限制                              

          c、(相对)访问比较慢
          d、没有高效地使用空间,随着块内存的创建和销毁,内存可能会变成碎片。
          e、你必须管理内存(变量的创建和销毁你必须要负责)
          f、变量大小可以用realloc( )调整  

                                                                                

1.1-4:相似之处:都是寻找最短路径 不同:旅行商问题随着顶点的增多,会产生组合爆炸,最短路径则不会。旅行商问题返回的路径是一个封闭的几何图形且不重叠,而最短路径放回的是一个网 可以重叠。

1.1-5:只有最佳解才可以:四个点围成四边形且每个点不重复连接(起始点不算)

近似最佳的解也足够好:选择路程最短的食堂。

© 著作权归作者所有

Angelks
粉丝 0
博文 10
码字总数 6719
作品 0
马鞍山
前端工程师
私信 提问
机器学习实战(笔记):第 1 章 机器学习基础

第一部分 分类 本书前两部分主要探讨监督学习(supervised learning)。 监督学习一般使用两种类型的目标变量: 标称型:目标变量的结果只在有限目标集中取值:真与假,动物分类集合 数值型:...

不见春暖_秋
2017/12/23
0
0
AI学习笔记——强化学习之值函数近似(Value Function Approximation)(2)

前文介绍了函数近似来预测V函数,但是还没涉及到行动和控制,这篇文章就来谈谈用近似Q函数来控制和行动。 1. 控制——递增算法 Incremental Control Algorithms 回顾前文动态规划(DP)解决MDP...

Hongtao洪滔
2018/12/07
0
0
“我爱智能”原创性博客索引

不知不觉,博客也写出了一点小体系,新的阶段已经开始,未来希望再接再厉继续补充这一体系,在成长中写博客,在博客中成长,在此先做一个小的梳理,谢谢大家的支持。 一)关于深度学习系列 ...

on2way
2015/08/29
0
0
局部加权回归、逻辑斯蒂回归、感知器算法—斯坦福ML公开课笔记3

转载请注明:http://blog.csdn.net/xinzhangyanxiang/article/details/9113681 最近在看Ng的机器学习公开课,Ng的讲法循循善诱,感觉提高了不少。该系列视频共20个,每看完一个视频,我都要记...

xinzhangyanxiang
2013/06/17
0
0
牛顿方法、指数分布族、广义线性模型—斯坦福ML公开课笔记4

转载请注明:http://blog.csdn.net/xinzhangyanxiang/article/details/9207047 最近在看Ng的机器学习公开课,Ng的讲法循循善诱,感觉提高了不少。该系列视频共20个,每看完一个视频,我都要记...

xinzhangyanxiang
2013/06/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

cmd命令与dos指令

bat命令学习 基础部分: 一、基础语法: 1.批处理文件是一个“.bat”结尾的文本文件,这个文件的每一行都是一条DOS命令。可以使用任何文本文件编辑工具创建和修改。 2.批处理是一种...

WinkJie
14分钟前
0
0
折叠手机适配布局

CSS Grid 设备相关参数 媒体查询 Chrome进行调试,创建相应的模拟机

lilugirl
44分钟前
2
0
Knative Eventing 中如何实现 Registry 事件注册机制

摘要: 在最新的 Knative Eventing 0.6 版本中新增了 Registry 特性, 为什么要增加这个特性, 该特性是如何实现的。针对这些问题,希望通过本篇文章给出答案。 背景 作为事件消费者,之前是...

阿里云云栖社区
47分钟前
1
0
安装 jemalloc for mysql

前言: Jemalloc 是BSD的提供的内存分配管理 安装依赖 $ yum install -y gcc$ yum install autoconf -y 安装 jemalloc $ git clone https://github.com/jemalloc/jemalloc$ cd jema......

Linux_Anna
58分钟前
3
0
linux下ctrl+c中止不了

有一台centos7的服务器,ctrl+c无效,并且tail -f也无效,只能关掉终端或者crtl+z放入后台再删掉,但是ping的时候使用ctrl+c是有效果的。 出现这种情况的原因可能是因为有人要使用ruby安装r...

gaolongquan
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部