大家好,我是飞宇。
" K. K2 g: \( c1 V5 o( p一个好朋友博哥(王一博)的新书出版了,出版社给我寄了一本,看了下质量非常不错,这里帮忙宣传一下,文末也会送几本,欢迎各位参加赠书活动。1 u/ F6 M; b: ^6 b9 d+ q
数据结构和算法是计算机科学的基石,是计算机的灵魂,要想成为计算机专业人员,学习和掌握算法是十分必要的。不懂数据结构和算法的人不可能写出效率更高的代码。计算机科学的很多新行业都离不开数据结构和算法作为基石,比如大数据、人工智能等。底层开发中也需要使用非常多的数据结构和算法知识,以保证底层系统的稳定性和高效性。
; E+ Z4 L/ R. `2 E! G6 c7 d笔者对算法的理解计算机科学家尼古拉斯·沃斯在计算机领域有一句人尽皆知的名言:“算法+数据结构=程序”(Algorithms+Data Structures=Programs)
: F$ V7 N8 z1 t5 |: ^9 _" c* C所以数据结构和算法是程序员必须掌握的技能。尤其是到一些大公司面试的时候,算法更是一个少不了的环节,熟练掌握数据结构和算法,可以开拓我们的视野,提高我们的逻辑思维能力,在写代码和分析官方源码的时候也非常有帮助。学习数据结构和算法的一个好处就是:学完之后知识基本不会过时,可以永远为我们所用。大家都知道程序员需要不停地学习,因为知识更新太快,记得在笔者(博哥)上大学和后来开始工作的时候,非常喜欢研究官方源码和框架,如痴如醉,但很遗憾,现在很多框架都已被淘汰了,没被淘汰的也被更新得面目全非,然后还要不停地学习其他新的框架。笔者一直在思考,能不能学习一种永不过时的知识。后来就接触了数据结构和算法,这一接触就是好多年,学的那么多知识依然没有过时。比如KMP算法是在1977年被联合发表的,那么多年过去了,这种算法依然没有被淘汰,如果是一个框架,基本上很难保证那么多年还能存在,就算存在也会有大量的更新,还是需要不停地学习。
$ x1 }5 w L7 O% i _; |! H3 } C3 b0 k. d8 ^' e
写书的初衷及过程笔者(博哥)具有10多年的开发经验,2017年开始做算法试题并在公众号发布试题讲解,经常游走在全球30多个算法网站之间,累计做题2000多道,对算法试题有自己独特的解题思路和技巧。7 T3 h, N8 z2 [" N4 Y
笔者写这本书的初衷是希望能够帮助更多的程序员快速学习算法,我们都知道算法在整个IT行业算是比较难的,之前有很过程序员通过公众号加笔者微信,请教关于算法的题,刚开始笔者一一进行了回复,后来随着咨询量越来越大,笔者意识到大家迫切地需要算法相关知识的系统指导。结合笔者过往的写作和从业经历,便着手写一本算法书籍,希望能欧帮助大家更好地学习算法,于是这本《算法秘籍》就诞生了。
. t5 Q+ |7 |$ R% T这本书的知识覆盖范围全面,总共分为13个章节,先是详细介绍了常见的八大数据结构。后面都是我们比较常见的算法题,其中包括了二叉树的Morris遍历,KMP算法,马拉车算法等经典题型。+ d- ^5 V! L. t) t1 I
关于数据结构,大家普遍认为难度较大的可能就是图了,本书对图的分类,图的表示方式,图的遍历,以及图的各种经典算法比如迪杰斯特拉算法,普里姆算法,拓扑排序等都有大量介绍。
) s8 u3 n( D% D& D" T6 j' r
$ ]! W" Q) S# B1 k j7 ?
aw1hor5wswa64067886330.png
! ^ }8 t# }- x8 B+ r3 B4 v | 6 R# c' O- @2 M7 e
pc3wnect2qw64067886430.jpg
: X: D7 h6 D4 q9 G3 S. | |
2 [% B; _' e+ l7 h# J5 r
ubsgur0fpj564067886530.png
/ Q5 [% M8 X, u/ |# l
( {) k. _5 Z# F v1 o
本书的内容
1 h7 `' o* B, [8 o M" S本书以Java为描述语言,介绍了计算机编程中常用的数据结构和算法,主要内容如下。# v! W6 D+ q; g9 u( P$ h
第1章:主要介绍了8种数据结构,包括数组、链表、队列、栈、散列表、树、堆、图,然后每种数据结构又有细分,比如介绍树的时候有完全二叉树、满二叉树、二叉搜索树、AVL树、红黑树、字典树、哈夫曼树、线段树、笛卡儿树等。图的介绍中也有一些经典的算法,比如迪杰斯特拉算法、弗洛伊德算法、普里姆算法和克鲁斯卡尔算法等。6 a' A/ E5 c6 m4 v* {2 f$ L* n
# S: Z. X% y+ m" o- z, o( l第2章:介绍了几种经典排序算法,以及它们的稳定性分析。
3 S2 e C4 H! {% r4 A' ?2 H* h( z$ g. [
第3章:主要介绍了一些位运算和常见操作符,还有一些简单的操作和使用技巧,如有限状态机和相关示例讲解。8 {0 D9 ^( l% Z# u
! \! Z1 l( r2 k% k) |第4章:介绍了和树有关的知识,比如树的遍历方式,包括DFS遍历、Morris遍历,以及BFS遍历等。; Z) y/ C4 j* A1 g: M1 K
' }1 [* E7 t0 A4 B6 s8 n% X5 h第5章:分析了递归的原理和示例练习,可以把它看作是对一棵树的DFS遍历。, o' x3 h W, n1 n1 k9 o: ^
6 _! S8 [ r" ?9 i7 v( f/ N0 s
第6章:主要介绍了回溯算法的使用,然后得出回溯算法的使用模板,以及一些经典示例,还有一些重复问题和不符合条件的修剪分支。
9 h4 p0 ~8 h( a+ m) L: \2 p- m6 |: r1 N
第7章:主要介绍贪心算法的使用和存在的不足。
. S+ T0 R! P- P. A' C N0 J9 g2 F- x! [+ U* F& m p0 v/ ^$ y8 r: m
第8章:分别介绍了相向双指针、同向双指针和快慢双指针的使用技巧,还有滑动窗口的介绍和使用模板,以及大小可变窗口、固定窗口、只增不减窗口等。$ ?7 |! A( a2 E0 {
* H; `0 x. z j$ X+ H( l第9章:主要介绍了BFS和DFS的使用模板和示例练习。
4 N/ [5 v. T7 {' E
# v( H" N' T' n6 h第10章:主要介绍了一维前缀和与二维前缀和的使用。
$ ^7 m9 e1 m/ W/ E- c( s, M6 f& Q) K* a) O* M
第11章:介绍动态规划和一些经典问题的讲解,如背包问题、组合与排列问题等。6 |+ T3 J5 \. s3 C& [
5 F n: M2 o$ \$ \( J第12章:通过三国人物的故事,生动形象地介绍了并查集的使用、并查集优化、并查集路径压缩以及合并优化等。, O# u' ^4 j5 H0 T+ j$ W
% o. T1 ~% R w! a. \( n0 K* U第13章:介绍了其他一些经典算法,比如KMP算法、马拉车算法、算术表达式的运算、牛顿迭代法求平方根、Base64编码等。
0 T' ]# u2 K) i% J8 u8 r0 b' K6 x
很荣幸,本书在编写过程中得到了业内专家的支持和认可。
4 V4 e# D W$ k: O7 a5 ]
) j( E2 t/ e: r! P
kgbrxjfdalm64067886630.png
# a; ` q) t2 c
联合推荐* [/ c) A$ _3 b I& V( Y& \, I+ {9 W
zzxxjxy1zpb64067886730.png
8 x# M5 Q' \, n! n* A5 Q
算法是编程的基石。本书以生动的案例,结合作者的丰富经验,诠释了算法学习的直观与趣味性,对算法感兴趣的开发者具有极高的参考价值。强烈推荐! % k& F" u4 j: `+ \+ M: u/ x
思否联合创始人兼CTO 祁宁
: B! u2 ]9 R$ X' g7 L5 {: E% d2 P e, a" P
算法是学习开发的基础和核心。博哥关注算法讲解多年,笔耕不辍,深得51CTO网友爱戴。本书是他多年经验的结晶,文笔精准、图文并茂,让枯燥的算法生动有趣,是广大初学者全面学习和了解算法的极佳读物!
8 F3 u! l* k7 H0 \ 51CTO首席内容官 杨文飞" x4 R1 c7 L; W& y9 d. B0 e
& b1 e# T' y" g+ `- C9 U; [! }
这是一本非常实用的算法学习书,书中使用大量插图详细介绍了常见的数据结构和算法,内容全面,代码中也有大量注释,容易理解,值得推荐。
7 x+ R- I* K& x开源中国创始人 红薯1 w0 \( O. M% S% V: w
5 A2 P! @( f/ V8 j
D- B( N0 \. N$ \# @8 V
8 U$ u) _1 Y# u5 t购买方式
3 q" C% E4 e7 r( x( H% K( Q3 U2 m0 d7 h% N
' B# _2 g$ a( R9 s& L) @
▊《算法秘籍》
( W) h; X! E5 U. O J王一博 著
+ p6 ~4 z+ z* U; d% a; r2 u
2 \ k& p5 K1 f0 R4 O4 e' R( b+ H/ t' o& a& w9 ?$ J
算法是编程的基石,开发的核心。5 A# F$ }, Y1 d6 t4 X+ c
本书包含55个二维码,300多分钟视频,100多个知识点,50多个示例,适合程序员、计算机专业相关师生,以及对算法感兴趣的读者。
, p3 o4 i; p8 \; a `
$ X2 a: `- k4 ^; x+ x; U- {% o这是一本关于数据结构和算法的书,以Java为描述语言,介绍了计算机编程中常用的数据结构和算法。全书共13章,讲述了常见的数据结构、排序算法、位运算、树、递归、回溯算法、贪心算法、双指针和滑动窗口、BFS和DFS、前缀和、动态规划、并查集、其他经典算法等知识。本书内容丰富,实用性强,通过示例练习和问题分析等方式,详细讲解了与算法有关的知识点。本书附赠视频讲解二维码,以及源代码。. ~5 Q% t0 b& G, _
赠书方式
7 Z$ V' a' R" l* h! s4 X. s# W( D本来打算采用留言点赞送书的方式,可飞宇听说貌似又一些刷赞团体专门组团刷赞来白嫖书籍的,所以为了让这些有价值的书被真心爱学习的小伙伴抽中,现在决定采用朋友圈点赞送书的形式。
8 \* G! ?1 m3 i6 `稍后我会在自己的朋友圈发布一条动态,点赞即可,今晚六点开奖,如果你没有我的好友欢迎你扫描下方二维码添加我,我也会经常在朋友圈分享一些技术和个人感悟,欢迎围观。
# y- `5 n) B: x5 a* y! I
0g1accmbybz64067886831.png
. a, U' s+ j0 q5 ^0 s: S% S对了,本次一共包邮送出五本,下一个幸运儿就是你~ |