Skip to content

Commit ccd084b

Browse files
committed
笔记归档
1 parent b4f520d commit ccd084b

File tree

6 files changed

+170
-99
lines changed

6 files changed

+170
-99
lines changed

README.md

Lines changed: 32 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,26 @@
22

33
> 本项目用于归档本人的各种笔记。
44
5+
<!-- TOC -->
6+
7+
- [Notes](#notes)
8+
- [编程语言](#编程语言)
9+
- [算法](#算法)
10+
- [数据库](#数据库)
11+
- [网络](#网络)
12+
- [操作系统](#操作系统)
13+
- [Web](#web)
14+
- [前端](#前端)
15+
- [大数据](#大数据)
16+
- [设计](#设计)
17+
- [软件工程](#软件工程)
18+
19+
<!-- /TOC -->
20+
21+
| :coffee: | :slot_machine: | :package: | :spider_web: | :computer: | :globe_with_meridians: | :art: | :cloud: | :bulb: | :building_construction: |
22+
| :---------------------: | :--------------: | :-----------------: | :-------------: | :---------------------: | :----------------------: | :-------------: | :-----------------: | :-------------: | :-----------------------: |
23+
| [编程语言](#编程语言) | [算法](#算法) | [数据库](#数据库) | [网络](#网络) | [操作系统](#操作系统) | [Web](#web) | [前端](#前端) | [大数据](#大数据) | [设计](#设计) | [软件工程](#软件工程) |
24+
525
## 编程语言
626

727
- [Java](programming/java)
@@ -18,7 +38,9 @@
1838
- [关系型数据库](database/sql)
1939
- [非关系型数据库](database/nosql)
2040

21-
## 网络(:construction: 待整理补充)
41+
## 网络
42+
43+
:construction: 待整理补充)
2244

2345
## 操作系统
2446

@@ -30,14 +52,20 @@
3052

3153
- [nginx](web/nginx)
3254

33-
## 前端(:construction: 待整理补充)
55+
## 前端
56+
57+
:construction: 待整理补充)
3458

35-
## 大数据(:construction: 待整理补充)
59+
## 大数据
60+
61+
:construction: 待整理补充)
3662

3763
## 设计
3864

3965
- [UML](design/uml)
4066
- [设计模式](design/design-patterns)
4167
- [重构](design/refactor)
4268

43-
## 软件工程(:construction: 待整理补充)
69+
## 软件工程
70+
71+
:construction: 待整理补充)

algorithm/README.md

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,80 @@
11
# 算法和数据结构
2+
3+
## 数据结构
4+
5+
> `数据结构` 是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。
6+
>
7+
> 记为:`Data_Structure=(D,R)`。其中 D 是数据元素的集合,R 是该集合中所有元素之间的关系的有限集合。
8+
9+
- **常用结构**
10+
- [数组](data-structure/array.md)
11+
- [](data-structure/stack.md)
12+
- [队列](data-structure/queue.md)
13+
- [链表](data-structure/list.md)
14+
- [](data-structure/tree)
15+
- [](data-structure/graph.md)
16+
- [](data-structure/heap.md)
17+
- [散列表](data-structure/hash.md)
18+
- **结构算法**
19+
- [查找](data-structure/search)
20+
- [排序](data-structure/sort)
21+
22+
## 学习资源
23+
24+
###
25+
26+
#### 刷题必备
27+
28+
- 《剑指 offer》
29+
- 《编程之美》
30+
- 《编程之法:面试和算法心得》
31+
- 《算法谜题》 都是思维题
32+
33+
#### 基础
34+
35+
-[编程珠玑(第 2 版)](https://www.amazon.cn/gp/product/B00SFZH0DC/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&camp=536&creative=3200&creativeASIN=B00SFZH0DC&linkCode=as2&tag=vastwork-23)
36+
-[编程珠玑(续)](https://www.amazon.cn/gp/product/B0150BMQDM/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&camp=536&creative=3200&creativeASIN=B0150BMQDM&linkCode=as2&tag=vastwork-23)
37+
-[数据结构与算法分析 : C++描述(第 4 版)](https://www.amazon.cn/gp/product/B01LDG2DSG/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&camp=536&creative=3200&creativeASIN=B01LDG2DSG&linkCode=as2&tag=vastwork-23)
38+
-[数据结构与算法分析 : C 语言描述(第 2 版)](https://www.amazon.cn/gp/product/B002WC7NGS/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&camp=536&creative=3200&creativeASIN=B002WC7NGS&linkCode=as2&tag=vastwork-23)
39+
-[数据结构与算法分析 : Java 语言描述(第 2 版)](https://www.amazon.cn/gp/product/B01CNP0CG6/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&camp=536&creative=3200&creativeASIN=B01CNP0CG6&linkCode=as2&tag=vastwork-23)
40+
-[算法(第 4 版)](https://www.amazon.cn/gp/product/B009OCFQ0O/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&camp=536&creative=3200&creativeASIN=B009OCFQ0O&linkCode=as2&tag=vastwork-23)》- 这本近千页的书只有 6 章,其中四章分别是排序,查找,图,字符串,足见介绍细致
41+
42+
#### 算法设计
43+
44+
-[算法设计与分析基础(第 3 版)](https://www.amazon.cn/gp/product/B00S4HCQUI/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&camp=536&creative=3200&creativeASIN=B00S4HCQUI&linkCode=as2&tag=vastwork-23)
45+
- 《算法引论》 - 告诉你如何创造算法 断货
46+
- 《Algorithm Design Manual》 - 算法设计手册 红皮书
47+
- [《算法导论》](https://www.amazon.cn/gp/product/B00AK7BYJY/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&camp=536&creative=3200&creativeASIN=B00AK7BYJY&linkCode=as2&tag=vastwork-23) - 是一本对算法介绍比较全面的经典书籍
48+
- 《Algorithms on Strings,Trees and Sequences》
49+
- 《Advanced Data Structures》 - 各种诡异高级的数据结构和算法 如元胞自动机、斐波纳契堆、线段树 600 块
50+
51+
### 参考链接和学习网站
52+
53+
- https://github.com/nonstriater/Learn-Algorithms
54+
- https://github.com/trekhleb/javascript-algorithms
55+
- https://github.com/kdn251/interviews/blob/master/README-zh-cn.md#%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84
56+
- [July 博客](http://blog.csdn.net/v_july_v)
57+
- 《数学建模十大经典算法》
58+
- 《数据挖掘领域十大经典算法》
59+
- 《十道海量数据处理面试题》
60+
- 《数字图像处理领域的二十四个经典算法》
61+
- 《精选微软等公司经典的算法面试 100 题》
62+
- [The-Art-Of-Programming-By-July](https://github.com/julycoding/The-Art-Of-Programming-By-July)
63+
- [微软面试 100 题](http://blog.csdn.net/column/details/ms100.html)
64+
- [程序员编程艺术](http://blog.csdn.net/v_JULY_v/article/details/6460494)
65+
66+
### 基本算法演示
67+
68+
- <http://sjjg.js.zwu.edu.cn/SFXX/sf1/sfys.html>
69+
- <http://www.cs.usfca.edu/~galles/visualization/Algorithms.html>
70+
71+
### 编程网站
72+
73+
- [leetcode](http://leetcode.com/)
74+
- [openjudge](http://openjudge.cn/) 开放在线程序评测平台,可以创建自己的 OJ 小组 [九度 OJ](http://ac.jobdu.com/index.php)
75+
- 这有个[ACM 训练方案](http://www.java3z.com/cwbwebhome/article/article19/res041.html)
76+
77+
### 其它
78+
79+
- [高级数据结构和算法](https://www.coursera.org/learn/gaoji-shuju-jiegou/) 北大教授张铭老师在 coursera 上的课程。完成这门课之时,你将掌握多维数组、广义表、Trie 树、AVL 树、伸展树等高级数据结构,并结合内排序、外排序、检索、索引有关的算法,高效地解决现实生活中一些比较复杂的应用问题。当然 coursera 上也还有很多其它算法方面的视频课程。
80+
- [算法设计与分析 Design and Analysis of Algorithms](https://class.coursera.org/algorithms-001/lecture) 由北大教授 Wanling Qu 在 coursera 讲授的一门算法课程。首先介绍一些与算法有关的基础知识,然后阐述经典的算法设计思想和分析技术,主要涉及的算法设计技术是:分治策略、动态规划、贪心法、回溯与分支限界等。每个视频都配有相应的讲义(pdf 文件)以便阅读和复习。

algorithm/data-structure/graph.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
#
2+
3+
在计算机科学中,一个图就是一些*顶点*的集合,这些顶点通过一系列**结对(连接)。顶点用圆圈表示,边就是这些圆圈之间的连线。顶点之间通过边连接。
4+
5+
![](http://dunwu.test.upcdn.net/images/data-structure/graph/graph.png)
6+
7+
## 术语
8+
9+
- **阶(Order)** - 图 G 中点集 V 的大小称作图 G 的阶。
10+
- **子图(Sub-Graph)** - 当图 G'=(V',E')其中 V‘包含于 V,E’包含于 E,则 G'称作图 G=(V,E)的子图。每个图都是本身的子图。
11+
- 生成子图(Spanning Sub-Graph) - 指满足条件 V(G') = V(G)的 G 的子图 G'。
12+
- 导出子图(Induced Subgraph) - 以图 G 的顶点集 V 的[非空子集](https://baike.baidu.com/item/%E9%9D%9E%E7%A9%BA%E5%AD%90%E9%9B%86/10180460)V1 为顶点集,以两端点均在 V1 中的全体边为边集的 G 的子图,称为 V1 导出的导出子图;以图 G 的边集 E 的非空子集 E1 为边集,以 E1 中边关联的顶点的全体为顶点集的 G 的子图,称为 E1 导出的导出子图。
13+
- **有向图** - 如果给图的每条边规定一个方向,那么得到的图称为有向图。
14+
- **无向图** - 边没有方向的图称为无向图。
15+
- **度(Degree)** - 一个顶点的度是指与该顶点相关联的边的条数,顶点 v 的度记作 d(v)。
16+
- **入度(In-degree)****出度(Out-degree)** - 对于有向图来说,一个顶点的度可细分为入度和出度。一个顶点的入度是指与其关联的各边之中,以其为终点的边数;出度则是相对的概念,指以该顶点为起点的边数。
17+
- **自环(Loop)** - 若一条边的两个顶点为同一顶点,则此边称作自环。
18+
- 路径(Path) - 从 u 到 v 的一条路径是指一个序列 v0,e1,v1,e2,v2,...ek,vk,其中 ei 的顶点为 vi 及 vi - 1,k 称作路径的长度。如果它的起止顶点相同,该路径是“闭”的,反之,则称为“开”的。一条路径称为一简单路径(simple path),如果路径中除起始与终止[顶点](https://baike.baidu.com/item/%E9%A1%B6%E7%82%B9)可以重合外,所有顶点两两不等。
19+
- **行迹(Trace)** - 如果路径 P(u,v)中的边各不相同,则该路径称为 u 到 v 的一条行迹。闭的行迹称作回路(Circuit)。
20+
- **轨迹(Track)** - 如果路径 P(u,v)中的顶点各不相同,则该路径称为 u 到 v 的一条轨迹。闭的轨迹称作圈(Cycle)。
21+
- **桥(Bridge)** - 若去掉一条边,便会使得整个图不连通,该边称为[](https://baike.baidu.com/item/%E6%A1%A5)
22+
23+
## 图的基本操作
24+
25+
- 创建一个图结构 - CreateGraph(G)
26+
- 检索给定顶点 - LocateVex(G,elem)
27+
- 获取图中某个顶点 - GetVex(G,v)
28+
- 为图中顶点赋值 - PutVex(G,v,value)
29+
- 返回第一个邻接点 - FirstAdjVex(G,v)
30+
- 返回下一个邻接点 - NextAdjVex(G,v,w)
31+
- 插入一个顶点 - InsertVex(G,v)
32+
- 删除一个顶点 - DeleteVex(G,v)
33+
- 插入一条边 - InsertEdge(G,v,w)
34+
- 删除一条边 - DeleteEdge(G,v,w)
35+
- 遍历图 - Traverse(G,v)

algorithm/data-structure/heap.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#
2+
3+
堆是一种特殊的基于树的满足某些特性的数据结构,整个堆中的所有父子节点的键值都会满足相同的排序条件。堆更准确地可以分为最大堆与最小堆,在最大堆中,父节点的键值永远大于或者等于子节点的值,并且整个堆中的最大值存储于根节点;而最小堆中,父节点的键值永远小于或者等于其子节点的键值,并且整个堆中的最小值存储于根节点。
4+
5+
![](http://dunwu.test.upcdn.net/images/data-structure/heap/heap.png)
6+
7+
时间复杂度:
8+
9+
- 访问最大值 / 最小值: `O(1)`
10+
- 插入: `O(log(n))`
11+
- 移除最大值 / 最小值: `O(log(n))`
12+

algorithm/data-structure/queue.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# 队列
2+
3+
队列是元素的集合,其包含了两个基本操作:入队(enqueue) 操作可以用于将元素插入到队列中,而出队(dequeue)操作则是将元素从队列中移除。
4+
5+
遵循先入先出原则 (FIFO)。
6+
7+
时间复杂度:
8+
9+
- 索引: `O(n)`
10+
- 搜索: `O(n)`
11+
- 插入: `O(1)`
12+
- 移除: `O(1)`

algorithm/data-structure/数据结构.md

Lines changed: 0 additions & 95 deletions
This file was deleted.

0 commit comments

Comments
 (0)