精华内容
下载资源
问答
  • 2011-08-21 14:21:11
    有好多次,我都问自己,学算法到底有什么用?


    作为一名软件学院的学生,学过C语言,学过C++,学过数据结构,学过算法,在这几门涉及到编程的课程中,我感觉算法是用处最小的一个,当然,这里的用处小指的是在工作以后。在工作过程中大多数时候并不需要去设计算法,或者应用到算法导论上某个很牛叉的算法,更多的只是一种把一个模块完成,把两个模块整合,主要是设计模式和面向对象之类的观点在发挥着巨大作用,而算法要有也就是简单的数据结构,甚至完全不需要任何算法,我猜在JAVA那种更多的是模块搭建的过程中这种情况应该不少见。


    周围有那种ACM的牛人,POJ上排名前十,但是到了工作中,他的这种算法技艺似乎对他的工作并没有什么帮助。他也就是每天用JAVA写点东西,然后测试改点BUG,完全涉及不到什么DP,什么贪心,什么图论。只要实现功能了,用什么都无所谓,这种思想应该存在。并不是每个人都能去微软亚研院这种对算法要求很高的研究机构,去一般公司只要会种语言,懂点技术,做过项目,基本就能满足条件了,至于面试的时候可能问几个数据结构题,根本不会让你现场写一个DP算法,或者拿一道ACM题让你说思路。研发团队都不怎么需要算法,至于测试团队就更不用说了。


    那学算法到底有什么用?其实这个问题很像学数学到底有什么用一样。工作以后还有谁要会算一个积分呢,或者求个极限,甚至连解个一元二次方程组都罕见了。和一个已工作一年的学长聊天,他说到数据结构,设计模式,操作系统还有英语这些很重要,至于算法根本就没提,当然也不会提微积分了。


    我觉得,如果按照数学给人思维,教人思考这种观念去想,算法也是如此,算法本质上来说也就是数学,比如组合数学里面就有很多算法,还有离散数学也是。很多时候,这些知识用不到,就算用到了也可以通过查书现看一番,然后过不了多久又被遗忘。成为一个一般的程序员并不需要学多少算法,只要那些立志成为优秀的程序员的人们才应该学点算法,无论是对自己的思维还是对自己能力的提升都会有好处。也许在一群程序员中每个人都会设计模式,都精通C++/JAVA,但是如果你精通算法,那你肯定就能技高一筹,即使用不到,那也是你砝码,懂得比别人更多并不是什么坏事。
    更多相关内容
  • 程序员技术指北—学算法有什么用参考 学算法到底有什么用?嗯,对你来说,可能还真的没有用。 我以前一直认为,学习计算机,必须要懂算法,不仅要懂算法,还应该要“精通”算法。 在我大一的时候,曾看过...

    持续学习&持续更新中…

    守破离


    程序员技术指北—学算法有什么用

    学算法有什么用

    学算法到底有什么用?嗯,对你来说,可能还真的没有用。

    • 我以前一直认为,学习计算机,必须要懂算法,不仅要懂算法,还应该要“精通”算法。

    • 在我大一的时候,曾看过李开复老师的一篇著名的文章——《算法为魂》。这篇文章对我影响深远,甚至说改变了我的人生选择都不为过。因为这篇文章,我开始有意识地去接触算法,学习算法,打算法比赛,直到现在,还在关注最新的算法发展。我做这些事情,并不完全是功利的。当然,这些对算法的学习过程,极大的为我自己的简历贴了金,但更重要的是,我确实想搞明白,对于我所热爱的信息技术,这个被称为“魂”的东西——算法,到底是怎么回事儿。

    • 十多年过去了,直至今日,我依然坚信算法为魂

    • 我经常说,计算机领域里,到处都是算法。算法的运用是如此常见,如此自然,如此平凡,乃至像空气一样,会被绝大多数人,甚至是计算机专业的人忽视。

    • 从我们打开计算机(或者手机,平板电脑)开始,一系列算法就开始运转起来:

      1. 从操作系统的调度算法,帮助我们顺畅地使用操作系统;
      2. 到网络连接过程中各种协议的运转,帮助我们畅游信息世界;
      3. 从我们使用搜索引擎,一个简单的关键字就可以在毫秒级别的时间返回数以亿计的信息,按照优先级排列展现到我们眼前;
      4. 到浏览器将枯燥的 html, css 和 js 文本转换成直观的网页,供我们轻松阅读浏览;
      5. 从看似平凡的文字处理工具帮助我们排版,修订;
      6. 到图像工具中各种神奇的滤镜帮助我们磨皮修片;
      7. 从游戏,影视作品中炫酷的特效;
      8. 到最新的交互科技——无论是 AR 还是 VR,越来越普遍的应用。
    • 算法无处不在

    • 但是,说实话,现在,我的这个“学习计算机,必须要懂算法”的观点在逐渐转变。这是因为,计算机的软件行业也在渐渐走向成熟。软件行业已经慢慢成熟到了:如果不会算法,也完全可以有所作为的程度

      1. 打一个可能不是那么恰当的比方。在乔布斯的时代,如果搞计算机,是必须要会设计线路板,焊线路板的。因为在那时,芯片还不是标准化产品,大家拼的,就是谁的线路板设计的更好。可是现在,大家搞计算机,谁还用焊板子呢?

      2. 再随便举两个例子,IBM 大家应该都知道,曾经也是 IT 界举足轻重的企业。他家的一个很重要的业务是技术咨询。曾经,IBM 的一大杀手锏,竟然就是二分查找法!是的,查找是信息世界中最重要的操作之一,这个世界上近乎有一半算法,其实本质,就是在提高查找速度。曾几何时,企业的信息查找速度不行了,来咨询 IBM,IBM 就教他们使用二分查找法,赚得满盆金钵。

      3. 另外一个例子就是数据库。现在大家学习数据库,都是直接学习 SQL 语言的使用。可能很少有同学会去想,一条 SQL 语言,在计算机内部到底是怎样执行的?要知道,曾几何时,数据库可不是一个标准化产品。所有的企业做任何软件系统,都要自己做一套数据库!那么自己做的数据库,性能怎么样,就是核心竞争力之一!你家的系统只能处理万级别的数据,我家的系统却能处理千万级别的数据,那我家的产品就领先整个市场。

      4. 其实,老牌的很多技术企业,都是靠这种“底层产品”起家的,比如 Oracle 的数据库,微软的 Windows(还有更早的 MS-DOS);Adobe 的 PS;苹果的 macOS,iOS;包括 Google 的搜索引擎,等等等等。现在,我们在大多数时候,更多的只是使用这些产品,但如果真要深入下去,思考一下,怎么做这些产品?大家将面对的,是一系列算法问题。

    • 但是,怎么做这些产品,确实已经渐渐不是技术世界的唯一出路了。业务场景变得越来越重要。 这就是我说的,其实,在计算机的世界中,如果不会算法,也完全可以有所作为

      1. 做一个 PhotoShop,要学习很多算法,但是用 PhotoShop 做出一张优美的图片,不需要接触算法;
      2. 制作一款游戏引擎,要学习很多算法,但是用游戏引擎打造一款成功的游戏,不一定需要接触算法;
      3. 制作一个 iOS 系统,制作一个 XCode,需要学习很多算法,但是制作一款优秀的 iOS App,不一定需要使用什么算法;
      4. 制作一个数据库,或者一个框架,需要学习很多算法,但是使用这些框架和数据库,打造一个网站,一个软件,一个服务,不一定需要接触很多算法。
    • 或许这就是很多同学觉得算法没用的原因。因为,大多数同学所面临的任务,不是做 PhotoShop,不是做游戏引擎,不是做操作系统或者编译软件;不是做数据库或者底层框架;而是应用他们打造具体的业务。

    • 算法已经被封装起来了,很多时候,我们不需要接触算法的原理,就能很好的完成业务需求。

    • 为什么很多同学觉得算法没有用?一个很“可能”的答案是:因为你所接触的工作就是用不到算法。 你所接触的工作只需要合理的使用各种工具框架就够了。

    • 我经常遇到同学们这样的疑问:我在具体工作中如何能够运用我所学习的这些算法知识?大概率的,答案是:可能不太能运用。因为,如果你觉得自己的算法水平一般,但是做当前的工作,并不觉得有问题,那么就已经说明了,你现在的工作内容,并不需要太多的算法知识的运用。

    • 虽然在计算机的世界里,算法无处不在,但这并不代表我们一定要掌握他们。

    • 这有点儿像数学。数学有没有用?当然有用。人类文明发展至今,数学的发展有着举足轻重的地位。但是我们在生活中,却越来越不容易感知到数学的重要意义了。

    • 这种业务上的“分级”,其实是一种很常见的现象。

      1. 一个航空公司并不需要了解怎么造飞机,那是飞机制造商的事情;
      2. 开一个饭馆也并一定是一个顶级厨师,怎么做饭是厨子的事情;
      3. 一个成功的游戏设计师不一定了解游戏引擎底层的诸多原理,那是游戏引擎开发商的事情;
      4. 一个顶级电竞高手也绝不一定是一个游戏设计师。这就好比一个设计人员不需要理解 Photoshop 背后诸多滤镜所隐含的图像学知识一样,那些是 Adobe 的开发人员需要关心的问题;
      5. 一个赛车手也不需要学会制造一辆赛车。
    • 这样的例子太多太多,怎么举都举不完。“分工”本身就是经济学的基础概念之一,是我们这个世界能够良性运转逐渐发展的诸多核心规则之一

    • 回到计算机领域中来,成功的打造一款网站,不代表你需要开发出浏览器,开发出运行在浏览器上的各种语言,以及一个底层的网络模型;成功打造一款 App,也不意味着你必须先学会开发出一个 iOS 或者 Android 系统。

    • 这些操作系统,编译环境,网络基础,框架,语言,都是现成的,我们可以直接使用。现如今,随着计算机逐渐发展,我们使用这些工具打造出一款成功的网站,服务,App,软件,游戏,在绝大多数情况下,确实不需要什么算法。即使需要,也真的很简单。

    • 所以,学算法到底有什么用?嗯,对你来说,可能还真的没有用。

    • 可是,一旦你的工作是开发新的语言,新的数据库,新的编译器,新的游戏引擎,新的搜索引擎,新的语音识别系统,新的操作系统,新的底层框架,等等等等,你就一定会开始大量的使用算法。如果你的算法功底不够,你就会意识到,自己是无法胜任这样的工作的。

    • 所以,有很多同学问我,学习了算法,怎么能够运用到工作中?我的回答是:去接触那些真正使用算法的工作。

    • 这也解释了为什么大厂面试会更多的侧重算法。因为大厂的产品服务大多更底层,或者需要解决尚没有被完美解决的问题。这些问题不是业务场景的问题,是需要更多的算法功底做支撑才能胜任的。

    • 但是,在我创业的过程中,见识了各种各样的在计算机领域的大牛,他们很多人算法水平极其一般,也能在计算机世界的“应用领域”大有成就。就是因为,他们所创造的产品和服务,没有这么底层。

    • 不过,大家一定要提醒自己。虽然我说学习算法对你来说不一定有用,但与此相对应的,要想取得成功,就一定有别的什么,是有用的

      1. 一个航空公司并不需要了解怎么造飞机,那是飞机制造商的事情:但是,航空公司要做航线的规划,客户的争取,服务的升级,安全的管理…

      2. 成功运作一个餐饮品牌不一定是一个顶级厨师,但是,需要你理解餐饮行业。从品牌定位,到地址选择,从食材采购运输加工,到服务人员的管理培训,从卫生保障,到库存管理,餐厅的环境布置,这些都是学问,都是厨师不懂的;

      3. 一个成功的游戏设计师不一定了解游戏引擎底层的诸多原理,但是,游戏设计师要理解游戏的设计理念,从美术风格,到游戏机制,从数值策划,到运营维护;

      4. 一个顶级电竞高手不一定是一个游戏设计师,但是打好一个游戏也并不容易,也需要日以继夜的练习和思考;

      5. 一个设计人员不需要理解 Photoshop 背后诸多滤镜所隐含的图像学知识。但是,他要理解设计,理解美,理解客户的需求,并且勇于创新,大胆尝试;

      6. 回到计算机领域中来,成功的打造一款网站,不代表你需要开发出浏览器,不代表你要开发出 HTML, CSS 和 JS 语言,更不需要开发一个底层的网络模型;成功打造一款app,也不意味着你必须先要开发出一个 iOS 或者 Android 系统。但是,从产品的角度,你要有清晰的定位,提供稳定的性能和服务,满足用户的需求甚至超出他们的预期;从技术的角度,你要有灵活的扩展性和安全性,可以高效满足业务场景的快速变化和各种意外

    • 算法不是技术领域的唯一的核心竞争力,但无论是一个人,一个企业,还是做一份事业,都需要有核心竞争力。 什么都没有,肯定是不行的

    • 很多同学问我,去大厂工作,一定要有算法比赛的成绩吗?答案当然不是。我认识太多大佬,没有参加过任何算法比赛,轻轻松松进大厂。

      1. 有的大佬在面试时直接说:算法我不太懂,但是设计模式软件架构随便问;

      2. 有的大佬则本科三年就做出一个简易的操作系统内核,面试时聊 OS 把面试官聊晕;

      3. 有的大佬在 iPhone 3 的年代就自学 iOS 开发,上架作品无数,一年时间直接进大厂 iOS 部门当负责人;

      4. 有的大佬只有高中学历,考不上大学,自学外挂技术竟然成才,如今成为知名游戏厂商的安全部门技术大拿。

    • 所以,“没有什么”从来不是问题。关键问题,从来都是:“你有什么”。

    • 大家加油!:)

    参考

    liuyubobobo老师imooc专栏: 用技术人的眼光看世界 • 程序员技术指北.


    本文完,感谢您的关注支持!


    展开全文
  • 什么算法 任何一个问题的解决方案都并非是凭空出现的,解决一个问题都需要选择一个合适的方法,并在此方法的引导下完成一系列的解答步骤,最终将问题转换为结果状态,对于计算机来说,这样的方法就是算法算法...

    什么是算法

    任何一个问题的解决方案都并非是凭空出现的,解决一个问题都需要选择一个合适的方法,并在此方法的引导下完成一系列的解答步骤,最终将问题转换为结果状态,对于计算机来说,这样的方法就是算法。
    算法有很多种分类,可以是一系列的数学计算,也可以是一系列的操作步骤,总之,它存在的意义就是为了有针对性地解决问题,之所以强调针对性解决问题,是因为这个世界上还没有一种可以解决一切的万能算法,每个问题都有它独特的一面。
    而对于这些特殊的需求,于是在这行业中出现了新的一批人,他们负责设计解决各种问题的算法。

    不过也正所谓没有最好用的,只有最合适的方案,不同的算法能够适配的是不同的环境,就好比不同的场景也要使用不同的服务架构模式。

    所以算法是什么,答案已经出来了 => 算法就是对问题一系列的分析得出的数据进行数学建模,用程序表达出来,来解决实际遇到的问题。

    学习算法的用处

    我们在软件开发的领域中,很多东西都会因为时间的变迁而变化,编程语言也会不断地推陈出新,各种软件技术的更新换代更是日新月异,但是万变之中,有一种东西是不变的,那就是算法
    数据结构,算法,计算机体系原理,远比编程语言,软件开发技术重要,因为算法和数据结构被称为软件的核心内容。

    在现今软件开发的领域中,技术迭代速度飞快,掌握任意一个技术都有可能在第二年被技术的潮流所冲走,而算法,是一个应用程序中不可动摇的东西,无论语言怎么改变,算法的设计理念都是一样的。


    包括在工作中遇到的算法也往往并非是ACM那样的题目(所以说比赛误人子弟啊...咳),常见的问题比如说是:

    • 交换机中端口和VLAN的映射关系维护 (没听说过...附文)
    • 路由器带宽限速 (也没什么想法...附文)
    • ...

    学习算法的目的是为了提高自己的软件编写,解决问题的能力,这种能力是在今后的工作或者项目开发过程中所需要展现出来的关键能力,换句话来说,就是:

    本身学习算法,目的是培养出一套思维框架,在未来可以真正改变自己做事的思维,而不是为了算法而学习算法,那样只会让自己被封闭住,最终失去了自己的弹性。

    秉承着这种原则去学习算法,更应该做的是找到方法,思考算法实现的设计和分析过程,而并非是去死记硬背各种算法的实现方法,学会钓鱼的方法永远比鱼更受益不是么?

    所以我们学习算法不能死记硬背各种算法的实现方法,而是通过这些算法的学习,特别是算法实现的设计和分析的过程,培养我们解决实际问题的能力,工作中遇到的问题是自己动手解决的问题,还是到处贴吧发帖子求助,它的背后就是这种能力的体现,而这种能力,笼统的来说,就是编程能力。


    编程能力大致包括以下:

    • 逻辑思维能力
    • 抽象建模能力
    • 编程的方法与技巧
    • ...

    编程能力的培养,不是三五天能成的,也不是死记硬背就能会的,需要的是大量的实践(鄙人也在学绘画...两者感触颇深....)


    学习算法本身,有几点是值得借鉴的:

    • 是能够比较直观的去提升自己编程能力的方法,掌握核心思想,能够在程序的道路中如虎添翼。
    • 同样是在写代码,但是在和别人思考同样的问题的时候,就会想的更细致些,比如时间复杂度,空间复杂度,计算效率问题的求解过程,对其它模块的影响等等(感触不能颇深,但有过的开发经验告诉我还是有的)
    • 我们经常会用代码堆出来一个功能,比如用户点击按钮的事件,这种流程化的动作机器也是可以做的,大量这样的场景都是可以避免去堆代码的

    学习算法,有很多种方法,可以根据问题的类型采取不同的方法,算法被权威人士大致分为三类,权威人士有多权威,我就不说了:

    • 已知算法 (拥有成熟且高效的实现方法的算法) => { 这类算法,除非是这个领域的从业人员或是励志成为该领域的专家,否则了解下就好,不至于工作中束手无策 }
      • avl树和红黑树的插入 (附文 => 戳此)
      • 删除算法 (附文 => 戳此)
      • 二分图匹配的匈牙利算法 (附文 => 戳此)
      • 数据压缩
      • 视频编码
      • 编解码算法
      • ...
    • 理论算法 (没有固定的实现方法的算法) => { 理论中的内容是需要进行数学建模之后才会有结果的,抽象的方法本身是需要根据场景变动而变动,结合问题的数学模型,将算法原理翻译成算法是代码的实现 }
      • 遗传算法
      • 贝叶斯算法
      • 决策树算法
      • KN分类算法
      • ...
    • 实际问题或是算法比赛中的题目 (没有通用的答案) => { 要有对问题抽象建模的能力,转化为数据模型的能力,实现数据模型的能力,... } 需要堆积的算法常用模式:
      • 贪婪法
      • 穷举法
      • 分治法
      • 动态规划法
      • ...

    对于后两类算法,门槛比较高,对抽象建模的能力和经验有要求,是需要时间来沉淀出来的。


    其实,开篇也就这么多内容,所提倡的学习方法,也正是我想要学习的目的,抱着这种思想,选择了这么一条道路,简单讲讲今日这四小时的收获,以及未来短期的规划和长期的规划。

    • 无论是什么技术,都不能为了技术而学技术,保持自己的弹性。
    • 学习算法,学的是算法思想,算法之禅,在各种场景中的灵活运用。
    • 虽然需要学习的是思维框架,是编程思想,但是基础的东西还是需要掌握的,比如贪婪法,穷举法等基本算法。

    学习目标

    • 完成每日的代码案例
    • 温习一次过去写的案例
    • 每日至少一小时的思考,沉淀
    • 绘制应用程序流程图
    • 每日的博客,日常总结,打卡

    短期思想

    • 结束第一个月每周温习一次过去学过的所有内容
    • 至少一天完成一个课后习题
    • 结束第二个月每两周温习一次过去学过所有的内容
    • 一周完成至少一个课后习题
    • 结束后三个月以后,每一个月复习一次学过的所有内容,周期持续到结束后六个月

    长期改变

    • 重审自己的编程思想

    转载于:https://www.cnblogs.com/Arunoido/p/10934044.html

    展开全文
  • 罗列了学习人工智能需要的几个算法,还有链接和例题,简单明了,是入门算法和人工智能的好书,算法对学习,工作都十分有益,我们需要掌握
  • 系统学习请关注公众号:C简简一、为什么要学习...算法和数据结构是信息竞赛最核心的部分,是必备的基础知识,“数据结构+算法=程序设计”。二、什么算法算法的特性算法是为求解一个问题需要遵循的、被清楚地指...

    5aeb94e3927b8228969ddaf51bb247ce.png

    系统学习请关注公众号:C简简

    一、为什么要学习算法

    算法已经被公认为是计算机科学的基石,算法不仅是计算机科学的分支,更是计算机科学的核心,要想成为计算机专业人员,学习和掌握算法是必须的。

    学习算法可以锻炼人们分析问题的能力,算法是解决问题的一种方法。

    算法和数据结构是信息学竞赛最核心的部分,是必备的基础知识,“数据结构+算法=程序设计”。

    二、什么是算法、算法的特性

    算法是为求解一个问题需要遵循的、被清楚地指定的简单指令的集合。算法对于符合一定规范的输入,能够在有限时间内取得要求的输出。

    算法的特性:(1)有穷性,一个算法包含有限步骤。(2)确定性,算法的每一个步骤都应是确定的,不能模糊不清。(3)有零个或多个输入。(4)有一个或多个输出。(5)有效性,算法的每步都应有效执行,并得出确定结果。

    三、算法分析

    对于一个确定正确的算法,要确定该算法运算需要多少时间和资源,这就是算法的时间效率和空间效率,时间效率体现了算法的运行速度,空间效率体现了算法占用的额外空间。

    在竞赛中主要问题是时间效率。

    算法分析的框架:

    1、算法的时间效率和空间效率都用输入规模的函数度量

    2、用基本操作的执行次数来度量算法的时间效率。用算法消耗的额外存储单元的数量来度量空间效率。

    3、在输入规模相同的情况下,有些算法的效率会有显著差异。

    有些算法随着输入规模的变化,时间效率变化很大。

    3d309de28354d1fd1ff67847a8668534.png

    四、时间效率分析

    当一个问题有几个算法时,需要确定算法的时间效率,就要对算法进行分析,进行分析还有助于洞察到怎么设计高效的算法,进行时间效率分析需要计算运行时间的上界,用O来表示,一般法则:

    1、for循环

    一个for 循环运行时间最多是一个for循环内语句运行时间乘以迭代次数。

    例1

    for(i=1;i<=N;i++)

    j++;

    时间效率是O(N)。

    2、嵌套for循环

    从里向外分析,为循环中语句运行时间乘以所有for循环的乘积。

    例2

    for(i=1;i<=N;i++)

    for(j=1;j<=N;j++)

    k++;

    时间效率为O(N2)

    3、顺序语句

    各个运行语句块时间的总和,再分析上界。

    例3

    for(i=1;i<=N;i++)

    j++;

    for(k=1;k<=N;i++)

    m++;

    时间效率为O(N)+O(N),则时间效率为O(N)。

    例4

    for(i=1;i<=N;i++)

    j++;

    for(i=1;i<=N;i++)

    for(j=1;j<=N;j++)

    k++;

    时间效率为O(N)+O(N2),则时间效率为O(N2)。

    4、if/else语句

    if 条件

    语句1

    else

    语句2

    运行时间不超过语句1或语句2的最长时间。

    举报/反馈

    展开全文
  • 什么要学习排序算法? 根据统计,早起大型机CPU资源的四分之一都花在了数据排序上面。排序算法作为最基础的算法,各种操作系统、编程语言都提供了内置的实现。既然排序实现随处可见,我们为什么还要自己动手实现呢...
  • 课程内容 第1天——给你讲解C++的学习方法和关键认知,重点:知道C++为什么,难在哪? 第2天——项目实战,让大家自己开发一个测试工具,1次从实现原理到构建项目全流程的体验。 第3天——教你如何准备大厂...
  • 一些好算法拾遗
  • 算法对程序员意味着什么

    千次阅读 2019-01-09 19:30:48
    程序员对算法通常怀复杂情感,算法很重要是共识,但是否每个程序员都必须学算法是主要的分歧点。 很多人觉得像人工智能、数据搜索与挖掘这样高薪的工作才用得上算法,觉得算法深不可测。但是这些其实都不是具体的...
  • 谈谈学习算法的优势

    2020-05-10 22:14:38
    Api谁不会调用呀,百度一搜全是答案对吧,你再多的技术,比如说Python,前端,Go,Java,你对他们底层不了解,又有什么用了,还是停留在Api的阶段,只会调用而不会造轮子。这是体验出算法的优势了,你能造出轮子给...
  • 学习数据结构和算法好处 提升编程能力,理解当红技术 区块链的结构就是一个链表(linked list),每一个区块的指针指向前一个区块。 每一个区块内的结构是二叉树(Binary Tree),Merkle Tree。 如何有效学习算法...
  • 算法设计与分析学习总结

    千次阅读 多人点赞 2019-12-11 01:27:04
    通过对《算法设计与分析》这门课的学习,似乎对算法有了一定的了解,之前对算法并没有太多的接触,只是一些普通的编程。选课的时候,觉得特别有意思,就选了这门课,通过学习各类算法了一定的认识。递归法,分治...
  • 如何学习算法

    2018-04-08 11:44:44
    如何学习算法 目录 如何学习算法 目录 1.学习算法的重要性 2.学习算法的方法 ...1.学习算法的重要性 ...今天学习算法变得越来越重要,虽然每个公司行业不同、岗位复杂,但算法能力强是分析能力和解决问题...同时,...
  • 必要学习数据结构和算法吗?

    千次阅读 2019-03-16 02:13:39
    如果我们是计算机专业毕业的同学,我们在大学里面肯定有学过数据结构和一些简单的算法知识。但是随着我们步入社会工作,我们似乎觉得这些东西和我们的日常开发没关系?即使我们不懂数据结构和算法好像也能对付日常的...
  • 在线学习算法一些感悟与理解

    千次阅读 2018-12-14 17:22:06
    目前经典的算法有贪婪算法,UCB1,UCB2,以及context-based UCB等。它们都一个共同点,它们是基于在线学习(learning algorithm)的解决思路。对于在线学习,我也搜索了一些资料,下面我结合资料谈谈看法,由于资料...
  • 每个课程都将集中讨论一个算法或一个主题,只有当两种算法紧密相关并且将两者配对在一起时会有好处。 每节课将由以下部分组成: 1.新算法简介 我将通过讲解什么算法,它是如何工作的,对它有用的以及有关该算法...
  • c语言有什么用 小白如何学习c语言

    千次阅读 2021-05-18 11:51:39
    很多编程的人认为,特别是初学者会认为:“我又不找C的工作,为什么C ?”这样的想法是不对的,下面我们就来看一下C语言的用处吧!c语言有什么用计算机C语言的作用是它可以作为系统设计语言,编写工作系统应用...
  • 深度Q学习 深度Q学习将深度学习和强化学习相结合,是第一个深度强化学习算法。...最近基于深度Q网络的深度强化学习算法有了重大的进展,在目前学术界非常大的影响力。 ·经验回放(experience replay):将经验
  • 密码之哈希算法

    万次阅读 2018-09-11 21:41:48
    1 哈希算法 哈希算法是将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,...
  • 【万字长文】不学算法你也应该知道的算法知识

    千次阅读 多人点赞 2021-08-31 23:40:32
    兄弟,想一起学习算法吗?想一起变强吗?想毕业的时候在算法方面吊打面试官吗?想成为刷题狂人吗?
  • 聊聊算法,AI算法和传统算法

    千次阅读 2020-12-02 09:21:27
    什么算法 算法是一组清晰定义的指令集合,用于解决某类问题或执行某种运算任务。算法应该在有限的空间和时间内进行表达,其运行从初始状态和初始输入开始,经过一系列有限而清晰定义的指令操作后,最终产生输出并...
  • 不知道你没有发现,非算法类的岗位,工作之后几乎没有用到什么算法,为什么还要学算法?本文谈谈自己的看法,不供参考。 从用人者角度 毋庸置疑,面试是用来筛选候选人的,在这个僧多粥少的时候,就需要提高筛选...
  • 计算机图形绘画算法

    2021-07-04 02:12:47
    本文概述它属于列表优先级算法类别。它也称为深度排序算法。在该算法中, 完成了对象可见性的排序。如果按特定顺序反转对象, 则可以得到正确的图像。对象以增加的顺序排列到z坐标。渲染按z坐标顺序进行。其他物体将使...
  • 监督学习算法的应用场景和优缺点

    千次阅读 2018-12-31 14:28:56
    记录一波监督学习算法的应用场景和优缺点。 高斯朴素贝叶斯 场景:该模型常用于性别分类,即通过一些测量的特征,包括身高、体重、脚的尺寸,判定一个人是男性还是女性。 优点:这个模型的优势是处理连续数据,特别...
  • 学习JVM有什么实际意义呢?

    千次阅读 多人点赞 2021-04-03 13:13:16
    开始的时候很来劲,现在到了P151分代收集算法的说明,堆、栈、方法区、程序计数器、执行引擎、标记清除算法、复制算法、标记整理算法、分代回收算法等等等等,这些东西在实际开发中又有什么用呢?可能是技术不到位...
  • 算法刷题经验总结,帮助大家更好更有效率地刷算法 《PAT | 蓝桥 | LeetCode学习路径 & 刷题经验 》
  • 首先,为什么要以三角形的光栅化为例呢,因为三角形是最基本的多边形,大部分的模型都是用一个个三角形表示,任意的其它多边形其实都可以转化成多个三角形的形式,因此以三角形的光栅化为例 如下图所示,给定了三个...
  • 关注、星标公众号,直达精彩内容来源:嵌入式资讯精选知乎上人问经常在网上看到很多牛人ICPC等各大编程大赛的经历。我是学习嵌入式开发的,感觉我天天都是在看芯片资料,代码难度也不高,甚至很...
  • 11月、开始学习算法

    2018-11-08 22:43:27
     一直想什么,但是也无奈于没有大把的时间,只能每天零散的学习一点东西,希望每天都进步吧,不想虚度自己的光阴。  最近开始学习算法,觉得挺有趣的,也超级费脑子,本来每天上班脑壳疼,还要抽时间学习...
  • 【online learning】在线学习算法

    千次阅读 2018-11-08 15:18:00
    增量训练的好处,增量训练花销低,生效块 发展 OGDFOBOSRDAFTRLFTML  全部代码:https://github.com/YEN-GitHub/OnlineLearning_BasicAlgorithm 下面以逻辑回归为例实现每种在线学习 逻辑回归 1. 目标函数为...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 155,637
精华内容 62,254
关键字:

学算法有什么好处