Tag: 算法

掌握算法本质背后的计算思维,尽在吴军博士《计算之魂》这本书中

计算机科学是20 世纪 40 年代以来发展最快、影响力最大的学科之一,也是许多 国家大学生首选的专业。一个计算机专业的学生,从大学生开始,到成为一般的从业 人员,再到专家学者,最后能走多远,在很大程度上取决于他 / 她在计算机科学领域 的素养。这些素养既包括对计算机科学本身的理解,也包括利用计算机软硬件知识来 解决现实世界问题的能力。虽然今天有很多介绍计算机各个领域的优秀图书,但是依 然缺乏一本全面论述计算机科学特色的图书,吴军博士的《计算之魂》一书在一定程度上填补了这个空白。 顾名思义,《计算之魂》讲述各种计算机理论和算法的灵魂,帮助读者全方 位、深刻地了解计算机科学,培养一种善于利用计算机解决问题的新的思维方 式,从而在计算机领域获得更大的成功。作者吴军把这种思维方式概括为计算思维。 作者在书中结合自己对计算机工程师的五级分级标准,详细讲解了每类题目不同层次的解决方法、不同水平的人大约能思考到什么样的深度,深度阐述题目背后的计算机科学精髓。通过对比优化解题思路,读者不仅可以衡量自己的水平,在职业的发展道路上走得更快,更可以深刻理解并掌握计算机科学和计算思维,逐渐把握计算机科学这门艺术,获得重复性成功。 对于所有有志于了解或学习科技,特别是计算机科学的人来讲,本书不仅有助于了解计算机科学,更有助于了解 IT 产业的技术特点、培养一些特殊的思维方式、掌握信息时代特殊的做事方法,通过具体的例子,从“术”的层面获得“道”的层面的提升。 有了对计算机科学本质的认识,一个计算机专业的学生,通过一段时间的刻意练 习和经验积累,就有可能成为计算机领域的专家。而练习则需要讲究方式方法,《计算之魂》就为广大的计算机行业从业者提供了许多提升能力的有效方法。这些方法来 自于作者在计算机领域多年的从业经验。 在《计算之魂》中,吴军将他 ...

豆瓣评分8.0以上,2021年程序员新书大盘点

今天是元旦,小编祝大家元旦快乐!多拿年终奖。今天带大家盘点一下2021年出版的程序员新书中豆瓣评分8.0以上的书。顺序是出版时间的倒序。 1、计算之魂 : 计算科学品位和认知进阶 豆瓣评分9.4 吴军 著 1.《数学之美》姊妹篇,吴军博士时隔近10年在科技领域的重磅新作。 2.李国杰院士、郑纬民院士作序推荐,快手联合创始人宿华、拼多duo联合创始人陈磊倾情推荐。 3.一部通过算法例题来阐述计算思维之妙的大作。全书的例题+思考题100+,是作者在谷歌、腾讯使用过的面试题,或是头部互联网企业、金融企业的面试题,。 4.五级工程师提升能力、不断向上发展的方法论。 5.附赠大幅思维导图折页+思维导图电子版+精美书签+增值视频+题目索引电子版。 作者在书中结合自己对计算机工程师的五级分级标准,详细讲解了每类题目不同层次的解决方法、不同水平的人大约能思考到什么样的深度,深度阐述题目背后的计算机科学精髓。通过对比优化解题思路,读者不仅可以衡量自己的水平,在职业的发展道路上走得更快,更可以深刻理解并掌握计算机科学和计算思维,逐渐把握计算机科学这门艺术,获得重复性成功。   2、什么塑造了今天的编程世界 : 漫画编程历史大事件(2022年周历版)豆瓣评分8.6 西乔,霍炬 著 《什么塑造了今天的编程世界:漫画编程历史大事件》是一本新颖的“风琴折”形式的文化周历,精选200年间56个改变编程世界的关键节点,兼顾广度和深度,贯穿多条技术领域的演化线索。四分册“风琴折”图文长卷,全彩印刷,一面是凝练博见、妙趣横生的编程发展简史,以“简练的文字描述+生动精美的漫画场景”展示编程世界的演变进化;另一面是可自由发挥的2022年周历书写页,留给你创造属于自己的历史,小巧精致,值得收藏。 ...

有哪些值得推荐的好的算法书?

经典算法 算法设计 这是一本关于算法设计和分析的经典教材。本书围绕算法设计进行组织,对每种算法技术用多个典型范例进行分析,把算法的理论跟实际问题结合起来,具有很大的启发性。本书侧重算法设计思路,每章都从实际问题出发,经过深入具体的分析引出相应算法的设计思想,并对算法的正确性和复杂性进行合理的分析和论证。本书覆盖面广,且含有200多道精彩的习题,最后还扩展了PSPACE问题、参数复杂性等内容。 本书的目标是将这种方法带入算法研究,作为一个设计过程,它始于各种计算应用程序中 出现的问题,构建在对算法设计技术理解的基础之上,最终得到这些问题的有效解决方案。我 们试图探讨算法思想在计算机科学中的作用,并将这些思想与一些精确制定的问题联系起来, 我们可以为它们设计算法并进行分析。换言之,导致这些问题的根本问题是什么?如何选择这 些特定的方式来描述它们?如何认识到不同情况下适用哪些设计原则? 本书的一个重要特征是问题集。本书共包含 200 多个问题,这是我们在康奈尔大学教学课程 的一部分, 几乎所有问题都在课外作业中被开发,或者在课堂测验进行了考试。我们将问题视为 本书的一个重要组成部分, 并且让它们的结构与我们对内容的整体方法保持一致。其中大部分内 容包含了一些问题的详细文字描述,这些问题出现在计算机科学应用领域或其他地方。部分问题 是我们在教材中讨论的问题的实践:建立必要的符号和形式化,设计算法,然后分析这个算法并 证明它是正确的。(我们认为这些问题的完整答案应该包括所有这些部分:带完整解释的算法、运 行时间的分析和正确性的证明。)这些问题的想法很大程度上来自我们多年来与在不同领域工作的 人们的讨论。而且,在某些情况下,这些问题也记录了一个有趣的(虽然是容易的)算法的应用, ...

学习数据结构有什么用?

当我们遇到一个实际问题时,首先需要解决两件事: (1)如何将数据存储在计算机中; (2)用什么方法和策略解决问题。 前者是数据结构,后者是算法。只有数据结构没有算法,相当于只把数据存储到计算机中,而没有有效的方法去处理,就像一幢只有框架的烂尾楼;若只有算法,没有数据结构,就像沙漠里的海市蜃楼,只不过是空中楼阁罢了。 数据是一切能输入计算机中的信息的总和,结构是指数据之间的关系。数据结构就是将数据及其之间的关系有效地存储在计算机中并进行基本操作。算法是对特定问题求解步骤的一种描述,通俗讲就是解决问题的方法和策略。 在遇到一个实际问题时,要充分利用自己所学的数据结构,将数据及其之间的关系有效地存储在计算机中,然后选择合适的算法策略,并用程序高效地实现。这就是Niklaus Wirth教授所说的:“数据结构+算法=程序”。 高校的计算机专业为本科生都开设了数据结构课程,它是计算机学科知识结构的核心和技术体系的基石,在研究生考试中也是必考科目。随着科学技术的飞速发展,数据结构的基础性地位不仅没有动摇,反而因近年来算法工程师的高薪形势,而得到了业内空前的重视。很多人认为基本的数据结构及操作已经在高级语言(如C++、Java语言)中封装,栈、队列、排序、优先队列等都可以直接调用库函数,学会怎么调用就好了,为什么要重复“造轮子”?那么到底有没有必要好好学习数据结构呢? 学习数据结构有什么用 (1)学习有效存储数据的方法。很多学生在学习数据结构时,问我要不要把单链表插入、删除背下来?要不合上书就不会写了。我非常诧异,为什么要背?理工科技术知识很少需要记忆的,是用的,用的!学习知识不能只靠死记硬背,更重要的是学习处理问题的方法。如何有效地存储数据,不同的数据结构产生什么样的算法复杂性,有没有更好的存储方法提高算法的效率? (2)处理具有复杂关系的数据。现实中很多具有复杂关系的数据无法通过简单的库函数调用实现。如同现在很多芯片高度集成,完全不需要知道芯片内部如何,直接使用就行了。但是,如果在现实中遇到一个复杂问题,现有的芯片根本无法解决,或者一个芯片只能完成其中一个功能,而我们需要的是完成该复杂问题的一个集成芯片,这时就需要运用所学的数据结构知识来高效处理具有复杂关系的数据。 (3)提高算法效率。很多问题的基础数据结构运行效率较低,需要借助高级数据结构或通过改进数据结构来提高算法效率。 通过学习数据结构,更加准确和深刻地理解不同数据结构之间的共性和联系,学会选择和改进数据结构,高效地设计并实现各种算法,这才是数据结构的精髓。 数据结构为什么那么难 网络上太多的同学吐槽被“虐”,如“滔滔江水连绵不绝”,数据结构太难了!真的很难吗?其实数据结构只是讲了3部分内容:线性结构、树和图。到底难在哪里呢?我通过调查,了解到数据结构难学大概有以下4个原因。 (1)无法接受它的描述方式。数据结构的描述大多是抽象的形式,我们习惯了使用自然语言表达,难以接受数据结构的抽象表达。不止一个学生问我,书上的“ElemType”到底是什么类型?运行时怎么经常提示错误。它的意思就是“元素类型”,只是这样来描述,你需要什么类型就写什么类型,例如int。这样的表达方式会让不少人感到崩溃。 (2)不知道它有什么用处。尽管很多人学习数据结构,但目的各不相同。有的人是应付考试,有的人是参加算法竞赛需要,而很多人不太清楚学习数据结构有什么用处,迷迷糊糊看书、做题、考试。 (3)体会不到其中的妙处。由于教材、教师等各种因素影响,很多学生没有体会到数据结构处理数据的妙处,经常为学不会而焦头烂额,学习重在体会其中的乐趣,有乐趣才有兴趣,兴趣是最好的驱动力。 (4)语言基础不好。我一直强调先看图解,理清思路,再上机。可还是有很多同学已经理解了思路后,因为缺少main函数,输入/输出格式不对,缺少括号等各种语言问题卡壳,而这一切都被戴上了“数据结构太难了”的大帽子。 数据结构学习秘籍 ...

清华大学教授整理Python相关代码,学员秒懂2021-03-17

清华大学教授整理Python相关代码,学员秒懂 1、冒泡排序 2、计算aa + bb + c*c + …… 3、计算阶乘 n! 4、计算x的n次方的方法 5、打印九九乘法表 通过指定end参数的值,可以取消在末尾输出回车符,实现不换行。 6、把一个list中所有的字符串变成小写: 7、输出某个路径及其子目录下所有以.html为后缀的文件 8、输出某个路径及其子目录下的所有文件路径 9、输出某个路径下的所有文件和文件夹的路径 10、把原字典的键值对颠倒并生产新的字典 11、列出当前目录下的所有文件和目录名 ...

【算法刷题】LRU缓存模拟

本文为个人解题思路整理,水平有限,有问题欢迎交流 概览 这题有两个解决方案,第二个的性能比第一个稍强,但是建议练习第一种方法,当然实际使用中性能优先 难度:中等 核心知识点:自定义链表 + map 题目来源 牛客:https://www.nowcoder.com/practice/e3769a5f49894d49b871c09cadd13a61 力扣:https://leetcode-cn.com/problems/lru-cache-lcci/ 本文依照牛客的要求解答,力扣的解决方案也是一样的 题目内容 设计LRU缓存结构,其大小在构造时确定 需求功能如下: set(key, value):将记录(key, value)插入该结构get(key):返回key对应的value值 额外要求如下: set和get方法的时间复杂度为O(1)某个key的set或get操作一旦发生,认为这个key的记录成了最常使用的。当缓存的大小超过K时,移除最不经常使用的记录,即set或get最久远的。 操作模式: ...

GitHub上最励志的计算机自学教程

点击上方蓝色“程序猿DD”,选择“设为星标” 回复“资源”获取独家整理的学习资料! 十三 贾浩楠 发自 凹非寺 量子位 报道 | 公众号 QbitAI 谷歌工程师条件:名校出身、CS专业背景、博士学位加持,技术过硬? 国外一个叫John Washam的小哥告诉你:不用,自学8个月也可以! John Washam励志要成为一名谷歌软件工程师,但没有CS专业背景的他,只能通过自己的努力来达成理想。 于是,8个月的时间里,小哥花了数千小时阅读书籍、编写代码、观看CS技术讲座,一路披荆斩棘、打怪升级。 最终,虽然没有去谷歌,但他人到中年,还顺利成为了一名亚马逊AWS的技术专家,年薪百万。 更加难能可贵的是,小哥还将自学经验编写成了一份教程,在GitHub上线以来,已收获近133k星的好评。 正如他所说: ...

Python编程基础:第十节 while循环While Loops

第十节 while循环While Loops 前言实践 前言 如果你需要计算机反复执行某个代码段,你就需要用到while循环,while循环的结构如下: while 判断1: 代码段1 当判断1为True时,while循环就会反复执行代码段1,直到判断1为False为止。 实践 我们这里对一个简单的需求进行实现,要求用户输入自己的姓名,如果用户没有输入,就反复提醒其输入,直到用户输入了姓名为止: name = None while not name: name = ...

菜鸟教程-C语言经典100示例(后50)

注:接上篇(菜鸟教程-C语言经典100示例(前50)) 51,学习使用按位与 &。 52,学习使用按位或 |。 53,学习使用按位异或 ^。 54,取一个整数a从右端开始的4~7位。 55,学习使用按位取反~。 56,画图,学用circle画圆形。 57,画图,学用line画直线(在TC中实现)。 58,学用rectangle画方形。(在TC中实现)。 59,画图,综合例子。(在TC中实现)。 60,画图,综合例子2。(在TC中实现)。 61,打印出杨辉三角形(要求打印出10行)。 62,学习putpixel画点,(在TC中实现)。 63,画椭圆ellipse(在TC中实现)。 64,利用ellipse and rectangle ...

菜鸟教程 Python100例答案

事实上,菜鸟教程100例每一例后都带有答案 所以这篇博客主要还是给自己看的 本人追求简洁、优美、锋利的代码 虽然以下问题都不难,但是我还是想尽量写出最好的代码 尤其希望用一行代码解决一个问题 所以希望小伙伴们把你认为更好的代码留在留言区! 2017/9/29 工欲善其事,必先利其器。我决定先做一个计时器,用于测评代码的质量 。。。。。。 我把计时器做出来了,但是今天的算法时间已经用光了,还把学英语的时间占用了。。请看我的这篇博客,里面有计时器的源码http://blog.csdn.net/Super_Tiger_Lee/article/details/78137973 只好只把第一题给做了 #T1 #题目:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?(woc,题干是三位数,我写成四位数了,原理都差不多吧,就不改了) nums=range(4) for first in nums: for secound ...

字节跳动《算法中文手册》高清版.pdf

今天给大家推荐一份曾经火爆全网的算法中文小册,据说有不少小伙伴靠这份指南成功掌握了算法的核心技能,成功拿到了 BAT offer。 先来给你们看看里面具体都有哪些内容: 目前上述内容已打包成完整电子书,具体获取方式如下: 扫描下方二维码,添加后并回复【算法】 扫描上方二维码 回复【算法】

适合小白学习的 20 个 Python 专题

Python与算法社区 已原创426篇,干货满满 值得星标 01 02 03 三步加星标 读者朋友们好,我是Python与算法社区的作者 zhenguo,时光荏苒,转眼间,在这里,已与读者们携手走过三年。截止目前,Python与算法社区已原创技术文章 426 篇。 在这期间,我积累了一定的技术文写作经验,知道一点如何写出更加通俗易懂的文章。所以,我会更加努力,继续创作,力争产出更加高质量的作品。 持久输出技术文章,并不是一件容易的事情。对于创作者而言,上了一天班,晚上回家再开电脑码字,耗费体力和脑力!然而,更加现实的是,技术文章本身往往枯燥无味,阅读率往往整体偏低,又进一步降低了写作原创文的动力。 其实,我完全可以走其他的路子,但那不是我的初心!相反,我会更加努力,持续提高写作水平、推文质量、排版水平、文章趣味性等等。 我还是有些情怀的,作为一名编码多年的程序员,有一种责任感,分享精神,想竭尽所能的去帮助一些新手,为提升程序员的整体水平尽一份力。 永远不要忘记:历经时间不断打磨的东西,才会散发出持久的迷香...... 今年以来,Python施工专题系列,已有20篇。很多读者希望能有pdf版本,这点我是非常理解的,公众号里学习技术、代码、公式,体验确实不是太好。 为了解决这个问题,我做了两点努力: 第一,搭建了个人网站,网址:zglg.work,把系列的文章同步到这里面,增加在PC端的选择: 斗胆命名为:Python中文网,致力于Python,爬虫,数据分析,算法,机器学习,深度学习,强化学习的原创教程发布。同时,翻译国外的优秀开源教程(如果你有业余时间,英语和Python还可以,欢迎加入翻译小组,福利:赠送Python书籍,可以单独微信我)。教程会满足不同阶段的读者要求,无论是零基础阶段的,进阶阶段的读者学习要求。 ...

Page 1 of 67 1 2 67