Skip to content

Commit d54ac39

Browse files
committed
更改 '业务' 為 '業務'
1 parent b4078ca commit d54ac39

File tree

7 files changed

+12
-12
lines changed

7 files changed

+12
-12
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
电子书:[《Python web 入坑指南》](http://python-web-guide.readthedocs.io/zh/latest/)
3838

3939
## 课程内容
40-
包括我們在业务開發和面试中常用的算法和數據結構,希望可以帮助 Python 開發者快速上手,很多老手写业务代碼写多了很多基础知识忘记了
40+
包括我們在業務開發和面试中常用的算法和數據結構,希望可以帮助 Python 開發者快速上手,很多老手写業務代碼写多了很多基础知识忘记了
4141
也可以作為回顾。课程尽量用通俗的方式講解,結合 python 语言和日常開發實践的經验。书中代碼可以作為大家的面试笔试参考。
4242
對于每個算法和用到的數據結構我們需要知道:
4343

docs/00_课程简介之笨方法学算法/why_and_how_to_learn.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,5 @@
2626

2727
- 你還知道哪些經典的算法和數據結構?
2828
- 学习算法你覺得需要哪些预备知识?
29-
- 我們的业务代碼開發中會涉及到算法嗎
29+
- 我們的業務代碼開發中會涉及到算法嗎
3030
- 你了解 redis 嗎,你知道它有哪几個常用的數據結構嗎?你知道它的底层實現方式嗎?

docs/06_算法分析/big_o.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,8 @@ n | $ 2n^2 $ | $ n^2 +n $ |
7070
這裡我們可以认為兩個算法的時間複雜度均為 $ O(n^2) $
7171

7272
# 常用時間複雜度
73-
這裡我們列举一些常用的時間複雜度,按照增長速度排序,日常我們的业务代碼中最常用的是指数之前的複雜度,指数和階乘的增長速度非常快,
74-
當输入比较大的時候用在业务代碼里是不可接受的
73+
這裡我們列举一些常用的時間複雜度,按照增長速度排序,日常我們的業務代碼中最常用的是指数之前的複雜度,指数和階乘的增長速度非常快,
74+
當输入比较大的時候用在業務代碼里是不可接受的
7575

7676
O | 名称 | 举例 |
7777
----------|--------------|--------------------|

docs/11_线性查找与二分查找/search.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# 查找
22

3-
查找可以說是我們业务代碼里用得最多的操作,比如我們經常需要在一個列表里找到我們需要的一個元素,然後返回它的位置。
3+
查找可以說是我們業務代碼里用得最多的操作,比如我們經常需要在一個列表里找到我們需要的一個元素,然後返回它的位置。
44
其實之前我們介绍的哈希表就是非常高效率的查找數據結構,很明显地它是用空間换時間。這一節介绍兩個基本的基于線性結構的查找。
55

66
# 線性查找
@@ -52,7 +52,7 @@ assert linear_search_recusive(number_list, 7) == 7
5252
assert linear_search_recusive(number_list, 0) == 0
5353
```
5454
這裡的 assert 我多写了几個,包括正常情况、异常情况和邊界值等,因為遞迴比较容易出错。注意這裡的兩個遞迴出口。
55-
當然业务代碼里如果碰到這種問題我們肯定是选上邊最直白的方式來實現,要不你的同事肯定想打你。
55+
當然業務代碼里如果碰到這種問題我們肯定是选上邊最直白的方式來實現,要不你的同事肯定想打你。
5656

5757
# 二分查找
5858
上一小節說的線性查找針對的是无序序列,假如一個序列已經有序了呢,我們還需要从头找到尾嗎?當然不用,折半(二分)是一種經典思想。日常生活中還有哪些經典的二分思想呢?

docs/15_堆与堆排序/heap_and_heapsort.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ def test_heapsort_reverse():
123123

124124
# Python 里的 heapq 模块
125125
python 其實自带了 heapq 模块,用來實現堆的相關操作,原理是类似的。請你閱讀相關文档并使用内置的 heapq 模块完成堆排序。
126-
一般我們刷题或者写业务代碼的时候,使用這個内置的 heapq 模块就够用了,内置的實現了是最小堆。
126+
一般我們刷题或者写業務代碼的时候,使用這個内置的 heapq 模块就够用了,内置的實現了是最小堆。
127127

128128

129129
# Top K 問題

docs/18_图与图的遍历/graph.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#
2-
之前们講過很多數據結構了,包括線性結構、鏈式結構、树結構等,這些結構基本就能应付我們的业务開發了
2+
之前们講過很多數據結構了,包括線性結構、鏈式結構、树結構等,這些結構基本就能应付我們的業務開發了
33
這一章來看下图結構,图的使用也比较广泛,比如人物關系、路径选择等等,相比前面的一些數據結構和算法要相對复杂一些。
4-
不過也不用担心,除非是特定的後端业务,一般图結構的使用比较少。這一章我們簡單地介绍下图結構,以及图的搜索算法。
4+
不過也不用担心,除非是特定的後端業務,一般图結構的使用比较少。這一章我們簡單地介绍下图結構,以及图的搜索算法。
55

66
# 什么是图?
77
我們先來考虑日常生活中的一個問題,我們在出行的时候一般會考虑使用地图软件搜下从一個地點到另外一個地點的路線。

docs/20_面试指南/interview.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@
33
- 电子简历尽量用 pdf 格式,方便跨平台打開。doc 等格式在不同的电脑上打開會有排版問題,很多後端技術面试官可能使用的是 mac 或者 linux。
44
- 提前复习回顾重點知识,防止卡在基础上。比如 mac 下著名的 brew 工具作者面试 google 就因為没写出來反转二叉树被拒,後來去了苹果😂.(這就只能看人品和运气和眼缘了,如果没見到二面面试官或者 hr,大概率是挂了)。(树、鏈表、哈希表、二分、快排、TCP/UDP、HTTP、數據库ACID、索引優化等常考點)。
55
- 白板编程,练习在纸上手写代碼。雖然很多求职者都很抵触手写代碼,但是白板编程确實是一種比较好的區分方式。你的思考過程、编碼习惯、编碼规范等都能看出來。
6-
- 如果被问到工程里不會使用但是比较刁钻的算法题,建議你和面试官沟通的时候问问這個算法或者题目在開發中有哪些實际使用场景,看看對方怎么說😎。少数公司喜欢考一些算法竞赛题,這種對于没有ACM,信息学竞赛背景的開發者來說比较吃力。大部分业务開發岗位应该只會考察基础算法题
6+
- 如果被问到工程里不會使用但是比较刁钻的算法题,建議你和面试官沟通的时候问问這個算法或者题目在開發中有哪些實际使用场景,看看對方怎么說😎。少数公司喜欢考一些算法竞赛题,這種對于没有ACM,信息学竞赛背景的開發者來說比较吃力。大部分業務開發岗位应该只會考察基础算法题
77
- 面试的时候准备充分,简历要与招聘方需求對等,甚至可以針對不同公司准备不同的简历内容。笔者每次面试都會带上白纸、笔、简历、电脑等,即使面试没過,至少也让面试官感覺我是有诚意的,给對方留下好印象。
88
- 加分项:github、個人技術博客、開源项目、技術论坛帐号等,让面试官有更多渠道了解你,有时候仅仅根據几十分钟的面试來评判面试者是有失偏颇的。(比如面试者临场發挥不好;面试官個人偏好;會的都不问,问的都不會等)
99

1010

1111
# 白板编程
1212
其實我個人是反對出纯算法题目的,尤其是有些比较刁钻的直接出算法竞赛题,這對与很多做工程的同学來說是比较吃亏的。没事的时候可以去 LeetCode 之类的网站刷刷基础题。
13-
一般來說 web 业务開發者掌握常見的编程语言内置算法和數據結構就够用了
13+
一般來說 web 業務開發者掌握常見的编程语言内置算法和數據結構就够用了
1414

1515
- 练习手写常見的算法,比如快排,二分,归并等,记住常見排序算法時間複雜度
1616
- 逻辑正确是前提
@@ -32,7 +32,7 @@ leetcode 上的基础题目练练手感。
3232

3333
# 結語
3434
這套教程列举的算法很有限,包括图算法、贪心,動态规划,分布式,机器学习算法等很多没有涉及到,因為它们确實需要讀者更深入的理论基础,而且這套教程的目的也不是針對算法竞赛。
35-
不過了解了本教程涉及到的大部分算法是可以应付绝大多数的业务開發的。如果讀者對算法有興趣,本教程引用的几本参考书都可以去深入学习。希望本教程能對你学习算法、养成良好的思维方式和编碼习惯等有所帮助。
35+
不過了解了本教程涉及到的大部分算法是可以应付绝大多数的業務開發的。如果讀者對算法有興趣,本教程引用的几本参考书都可以去深入学习。希望本教程能對你学习算法、养成良好的思维方式和编碼习惯等有所帮助。
3636

3737
# 延伸閱讀
3838
目前市面上有一些专门針對算法面试的书供大家参考,如果你正在准备算法面试,我强烈建議你看看下面的参考资料学习解题技巧:

0 commit comments

Comments
 (0)