市面上有用的算法书籍很多,主要掌握一个原则:根据你目前的能力水平、知识点掌握情况来选择。

可以怎么入门呢?建议还是看书+实战,实战当然也不是说要去肝ACM或者是topcoder什么的,基本上来我们LintCode刷刷题也就够了。

如何学习算法?

算法,其实可以分为三种。算法、面试算法、竞赛算法。

算法

也就是算法本身,推荐一些书籍。

1.入门系列

《算法图解》:“像小说一样有趣的算法入门书”,主打“图解”,通俗易懂

《大话数据结构》:把理论讲得有趣不枯燥;每个数据结构和算法,作者都结合了生活中的例子,能让你有非常直观的感受。

2.教科书系列

《数据结构与算法分析》:很多大学都拿它当作教材,非常系统、全面、严谨,适合掌握了至少一门编程语言的同学。

作者也很贴心,这本书有三种语言的版本:《数据结构与算法分析 : C 语言描述》《数据结构与算法分析 : C++ 描述》《数据结构与算法分析 : Java 语言描述》。

3.进阶之旅

《算法导论》:有了一定基础之后,就可以开始啃这本大部头了。

4.扩展阅读

《算法之美》:算法科普,从生活中的各种问题说起:租房、谈恋爱、老虎机、拍电影、面试、买彩票、各种排序、找停车位、寻找新药、临床试验、奥巴马拉赞助、预估电影票房等等,非常生活化,可以作为补充阅读。

《算法帝国》:同样是科普类书籍,并无涉及算法的原理与实现细节,也可以作为补充阅读。

5.殿堂级

《计算机程序设计艺术》:包含很多卷,深度、广度、系统性、全面性是其他所有数据结构和算法书籍都所无法相比。可以当做一种挑战~图片来自极客时间《数据结构与算法之美》

面试算法

要说最快掌握面试算法的捷径,还是脚踏实地着多动手去刷题,多刷题。

当然,在LintCode开始刷题,首先你也也得具备一定的基础,这些基础包括:

对算法题来说有两大法宝,“拿到题选什么算法”和“如何实现这个算法”,后者会更容易一些,所以可以先从实现算法开始练起(LintCode的分类阶梯训练)。

然后当一些标准算法数据结构都不陌生后,再去训练新题,尝试用各种算法解决各种不同的问题。

当然,针对面试准备,也有一些书:

《剑指 Offer》:几乎包含所有常见的、经典的面试题,是应对面试的必读书籍

《编程之美》:适合准备面试FLAG大厂时候用来刷题

ps:这两本书都可以配合在LintCode上刷题

竞赛算法

算法学习最好由浅入深,先了解算法思维,再去理解实际应用;

当逐步全面的掌握相关知识体系,有一定实践经验后,可以去参加一些竞赛提升自己的算法能力。

竞赛算法是比较锻炼人的,对于竞赛来说,每道题对输入参数和样本量的要求都非常明确,包括对空间的限制和运行时间的限制也规定的非常明确。每一个竞赛选手都非常熟练怎么根据这些提前给好的限制,反推出自己需要实现一个什么样复杂度的解法才能通过。所以对思维和逻辑上的锻炼是非常有效的。

献上一些面试常考算法类型和经典题,愉快地刷起来吧~

双指针算法

排序算法

二分法

宽度优先搜索

递归

遍历

分治法

深度优先搜索

动态规划

当然,也可以来免费试听我主讲的

python算法编程书籍推荐_推荐一本编程算法书籍,你推荐哪本?相关推荐

  1. java编程思想怎么样_读完java编程思想后的思考?

    谢邀,这本书真的给我带来很多思考. 我的java入门不是java编程思想,学校的教材是一本紫色的书,已经忘了叫什么名字了,里面内容倒挺新还讲了些javafx.但那本书实在是太浅并且结构混乱,以至于我和 ...

  2. 什么是算法算法有些什么特性_反正是什么算法

    什么是算法算法有些什么特性 What you need to know about the simple concept that powers the modern world. 您需要了解为现代世 ...

  3. 三丰三坐标编程基本步骤_数控车床编程,经典实例教程

    一.数控车编程特点 (1) 可以采用绝对值编程(用X.Z表示).增量值编程(用U.W表示)或者二者混合编程. (2) 直径方向(X方向) 系统默认为直径编程,也可以采用半径编程,但必须更改系统设定. ...

  4. 单片机魔法编程百度云_嵌入式单片机编程魔法之三权分立~

    在单片机编程中,有很多人会因为一些貌似简单的处理而把问题弄得乱七八糟,如林中蛛网一样,错综复杂. 而事实上,根据编程魔法之思想,对程序处理的过程严格划分部门.各施其职.部门内部互不干涉内政,是成功编程 ...

  5. 二分法算法复杂度简化_让我们简化算法的复杂性!

    二分法算法复杂度简化 by Shruti Tanwar 通过Shruti Tanwar 让我们简化算法的复杂性! (Let's simplify algorithm complexities!) It ...

  6. python亲和性分析法推荐电影论文_数据挖掘-MovieLens数据集_电影推荐_亲和性分析_Aprioro算法...

    #!/usr/bin/env python2 # -*- coding: utf-8 -*- """ Created on Tue Feb  7 14:38:33 201 ...

  7. python 数据分析教程推荐_太香了!墙裂推荐6个Python数据分析神器!!

    作者:东哥起飞,数据爱好者 Python数据科学 hello,大家好我是东哥! 用Python处理数据大家都不陌生了,属常规操作,但常规之下还是也有些暗藏技巧的,本篇东哥分享6个好玩高效的操作,帮助大 ...

  8. 三年级优秀书籍推荐_部编版三年级课外推荐阅读书目-三年级部编版必读书

    部编版 小学三年级推荐阅读书目及简介 导言: 三年级是孩子分化的年级,课程难度加大,孩子的试卷上不再是皆大欢喜的百分.而儿童阅读学的研究也表明, 孩子如果在三年级还没有养成阅读兴趣和阅读习惯,他在以后 ...

  9. python数量推荐_太香了,墙裂推荐3个Python数据分析EDA神器!

    作者:东哥起飞 EDA是数据分析必须的过程,用来查看变量统计特征,可以此为基础尝试做特征工程.东哥这次分享3个EDA神器,其实之前每一个都分享过,这次把这三个工具包汇总到一起来介绍. 1. Panda ...

  10. python 爬虫课程推荐_关于递归抓取的课程推荐

    Python爬虫包 BeautifulSoup 递归抓取实例详解概要:爬虫的主要目的就是为了沿着网络抓取需要的内容.它们的本质是一种递归的过程.它们首先需要获得网页的内容,然后分析页面内容并找到另一个 ...

最新文章

  1. Python3 学习第十一弹: 模块学习四之sys库
  2. 写给初学者的深度学习教程之 MNIST 数字识别
  3. JSP完全自学手册图文教程
  4. JetBrain WebStorm 注册码
  5. [转载] 中华典故故事(孙刚)——31 千里送鹅毛_礼轻情义重
  6. Netflix OSS、Spring Cloud还是Kubernetes? 都要吧!
  7. 二阶系统根轨matlab,自控-二阶系统Matlab仿真.doc
  8. 新手CrossApp 之CAProgress小结
  9. Redis-03Redis数据结构--全局命令及字符串string
  10. 搜狗新闻语料文本分类实践
  11. 开游戏服务器要选择什么样的?
  12. 小程序收费标准是什么,多少钱一年?
  13. SQL中获取当前时间的函数、在日期上减去指定的天数的函数
  14. 你遇到过启动电脑以后系统桌面无法显示吗
  15. 请问,我要去工商局申请一个工作室,法律上需要那些流程
  16. 单例模式-DoubleCheck
  17. 史上最全的Uboot常用命令汇总(超全面!超详细!)收藏这一篇就够了
  18. oracle查询job号,oracle job号使用
  19. Socket.IO使用方法
  20. python使用statsmodels包中的tsa.acf函数计算时间序列数据所有滞后位置个数(级别)的自相关性、tsaplots函数可视化时间序列数据所有滞后位置个数(级别)的自相关性

热门文章

  1. 荣誉背后的故事:达内到底有多强?
  2. 七种基本质量工具(7QC)和PDCA循环
  3. html5 调速 视频播放器,7款很棒的 HTML5 视频播放器
  4. UVA-816 Abbott's Revenge (bfs)
  5. Java暴力破解Wifi
  6. python+django+vue酒店入住客房管理系统
  7. 【解决】微信播报,连接蓝牙后延迟播报
  8. 高项_第六章项目进度管理
  9. 查看python包的版本
  10. OBS 电脑推流直播指南