这本书讲的内容很基础,代码每一句都进行了解释,很适合初学者阅读:
书中基本的内容有:
1、数组
(1)数组其实是内存里连续的一块地址,当删除某一块时,那么其他的内容向前移动;
(2)数组中常用的方法;
2、栈
(1)后进先出,例如:饭店洗盘子
3、队列
(1)先进先出,例如:排队上厕所
4、链表
(1)链表其实是内存里不连续的地址,
(2)单向链表:一个节点有两个地址一个放内容,一个放指向下一个节点的指针
(3)双向链表:一个节点有三个地址一个放内容,一个方指向下一个节点的指针,一个放指向上一个节点的指针
5、集合
(1)一个对象,里面内容无序且唯一;可以求并集、差集、子集;
6、字典和散列表
(1)查找数组内容,需要循环,浪费时间,最好有找到key,立马找到value的效果
(2)字典也叫映射,是通过散列算法来实现的,key是唯一的,然后通过key就可以找到value。需要得到一种key不冲突且查的快;有两种方式计算key:分离连接、线性探测;
7、树
(1)树的中序遍历、先序遍历、后序遍历
8、图
(1)图的深度优先、广度优先
9、排序和搜索算法
(1)冒泡排序、快速排序、插入排序、选择排序、查找算法:二分查找
10、算法补充知识
(1)贪心算法、大O表示法等算法进一步提升
常用的几个网站,不过都是英文的,大家有时间可以去提升下技能:
包含世界大赛的题目:https://uva.onlinejudge.org/
包含世界大赛的题目:http://www.spoj.com/
74个可以用javasript的解答题目:https://coderbyte.com/
数学、计算机的编程题目:https://projecteuler.net/
263个挑战:https://www.hackerrank.com/
一些题目、在线比赛:https://www.codechef.com/
算法联赛,很多大公司都在里面:https://www.topcoder.com/
1、数组
(1)数组其实是内存里连续的一块地址,当删除某一块时,那么其他的内容向前移动;
(2)数组中常用的方法;
2、栈
(1)后进先出,例如:饭店洗盘子
3、队列
(1)先进先出,例如:排队上厕所
4、链表
(1)链表其实是内存里不连续的地址,
(2)单向链表:一个节点有两个地址一个放内容,一个放指向下一个节点的指针
(3)双向链表:一个节点有三个地址一个放内容,一个方指向下一个节点的指针,一个放指向上一个节点的指针
5、集合
(1)一个对象,里面内容无序且唯一;可以求并集、差集、子集;
6、字典和散列表
(1)查找数组内容,需要循环,浪费时间,最好有找到key,立马找到value的效果
(2)字典也叫映射,是通过散列算法来实现的,key是唯一的,然后通过key就可以找到value。需要得到一种key不冲突且查的快;有两种方式计算key:分离连接、线性探测;
7、树
(1)树的中序遍历、先序遍历、后序遍历
8、图
(1)图的深度优先、广度优先
9、排序和搜索算法
(1)冒泡排序、快速排序、插入排序、选择排序、查找算法:二分查找
10、算法补充知识
(1)贪心算法、大O表示法等算法进一步提升
常用的几个网站,不过都是英文的,大家有时间可以去提升下技能:
包含世界大赛的题目:https://uva.onlinejudge.org/
包含世界大赛的题目:http://www.spoj.com/
74个可以用javasript的解答题目:https://coderbyte.com/
数学、计算机的编程题目:https://projecteuler.net/
263个挑战:https://www.hackerrank.com/
一些题目、在线比赛:https://www.codechef.com/
算法联赛,很多大公司都在里面:https://www.topcoder.com/
有关键情节透露