Skip to content

Commit 0230ae1

Browse files
committed
Deployed 5628b0e with MkDocs version: 0.17.3
1 parent 36b1009 commit 0230ae1

File tree

5 files changed

+33
-33
lines changed

5 files changed

+33
-33
lines changed

07_哈希表/hashtable/index.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -347,7 +347,7 @@ <h1 id="cpython">Cpython 如何解决哈希冲突</h1>
347347
<h1 id="_3">哈希函数</h1>
348348
<p>到这里你应该明白哈希表插入的工作原理了,不过有个重要的问题之前没提到,就是 hash 函数怎么选?
349349
当然是散列得到的冲突越来越小就好啦,也就是说每个 key 都能尽量被等可能地散列到 m 个槽中的任何一个,并且与其他 key 被散列到哪个槽位无关。
350-
如果你感兴趣,可以阅读后边提到的一些参考资料。</p>
350+
如果你感兴趣,可以阅读后边提到的一些参考资料。视频里我们使用二次探查函数,它相比线性探查得到的结果冲突会更少。</p>
351351
<h1 id="load-factor">装载因子(load factor)</h1>
352352
<p>如果继续往我们的哈希表里塞东西会发生什么?空间不够用。这里我们定义一个负载因子的概念(load factor),其实很简单,就是已经使用的槽数比哈希表大小。
353353
比如我们上边的例子插入了 8 个元素,哈希表总大小是 13, 它的 load factor 就是 <script type="math/tex"> 8/13 \approx 0.62 </script>。当我们继续往哈希表插入数据的时候,很快就不够用了。
@@ -359,7 +359,7 @@ <h1 id="rehashing">重哈希(Rehashing)</h1>
359359
<h1 id="hashtable-adt">HashTable ADT</h1>
360360
<p>实践是检验真理的唯一标准,这里我们来实现一个简化版的哈希表 ADT,主要是为了让你更好地了解它的工作原理,有了它,后边实现起 dict 和 set 来就小菜一碟了。
361361
这里我们使用到了定长数组,还记得我们在数组和列表章节里实现的 Array 吧,这里要用上了。</p>
362-
<p>解决冲突我们使用二次探查法。我们来实现三个哈希表最常用的基本操作,这实际上也是使用字典的时候最常用的操作。</p>
362+
<p>解决冲突我们使用二次探查法,模拟 cpython 二次探查函数的实现。我们来实现三个哈希表最常用的基本操作,这实际上也是使用字典的时候最常用的操作。</p>
363363
<ul>
364364
<li>add(key, value)</li>
365365
<li>get(key, default)</li>
@@ -388,7 +388,7 @@ <h1 id="_4">思考题</h1>
388388
<h1 id="_5">延伸阅读</h1>
389389
<ul>
390390
<li>《Data Structures and Algorithms in Python》11 章 Hash Tables</li>
391-
<li>《算法导论》第三版 11 章散列表</li>
391+
<li>《算法导论》第三版 11 章散列表,了解几种哈希冲突的解决方式,以及为什么我们选择二次探查而不是线性探查法?</li>
392392
<li>介绍 c 解释器如何实现的 python dict对象:<a href="http://www.laurentluce.com/posts/python-dictionary-implementation/">Python dictionary implementation</a></li>
393393
</ul>
394394

09_集合/set_adt.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ def __len__(self):
1919
return self._size
2020

2121
def clear(self, value=None):
22-
for i in range(self._items):
22+
for i in range(len(self._items)):
2323
self._items[i] = value
2424

2525
def __iter__(self):

index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -501,5 +501,5 @@ <h2 id="_19">本电子书制作和写作方式</h2>
501501

502502
<!--
503503
MkDocs version : 0.17.3
504-
Build Date UTC : 2018-06-10 12:28:12
504+
Build Date UTC : 2018-06-11 00:56:11
505505
-->

search/search_index.json

Lines changed: 4 additions & 4 deletions
Large diffs are not rendered by default.

sitemap.xml

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,111 +4,111 @@
44

55
<url>
66
<loc>/</loc>
7-
<lastmod>2018-06-10</lastmod>
7+
<lastmod>2018-06-11</lastmod>
88
<changefreq>daily</changefreq>
99
</url>
1010

1111

1212

1313
<url>
1414
<loc>/00_课程简介之笨方法学算法/why_and_how_to_learn/</loc>
15-
<lastmod>2018-06-10</lastmod>
15+
<lastmod>2018-06-11</lastmod>
1616
<changefreq>daily</changefreq>
1717
</url>
1818

1919

2020

2121
<url>
2222
<loc>/01_抽象数据类型和面向对象编程/ADT_OOP/</loc>
23-
<lastmod>2018-06-10</lastmod>
23+
<lastmod>2018-06-11</lastmod>
2424
<changefreq>daily</changefreq>
2525
</url>
2626

2727

2828

2929
<url>
3030
<loc>/02_数组和列表/array_and_list/</loc>
31-
<lastmod>2018-06-10</lastmod>
31+
<lastmod>2018-06-11</lastmod>
3232
<changefreq>daily</changefreq>
3333
</url>
3434

3535

3636

3737
<url>
3838
<loc>/03_链表/linked_list/</loc>
39-
<lastmod>2018-06-10</lastmod>
39+
<lastmod>2018-06-11</lastmod>
4040
<changefreq>daily</changefreq>
4141
</url>
4242

4343

4444

4545
<url>
4646
<loc>/04_队列/queue/</loc>
47-
<lastmod>2018-06-10</lastmod>
47+
<lastmod>2018-06-11</lastmod>
4848
<changefreq>daily</changefreq>
4949
</url>
5050

5151

5252

5353
<url>
5454
<loc>/05_栈/stack/</loc>
55-
<lastmod>2018-06-10</lastmod>
55+
<lastmod>2018-06-11</lastmod>
5656
<changefreq>daily</changefreq>
5757
</url>
5858

5959

6060

6161
<url>
6262
<loc>/06_算法分析/big_o/</loc>
63-
<lastmod>2018-06-10</lastmod>
63+
<lastmod>2018-06-11</lastmod>
6464
<changefreq>daily</changefreq>
6565
</url>
6666

6767

6868

6969
<url>
7070
<loc>/07_哈希表/hashtable/</loc>
71-
<lastmod>2018-06-10</lastmod>
71+
<lastmod>2018-06-11</lastmod>
7272
<changefreq>daily</changefreq>
7373
</url>
7474

7575

7676

7777
<url>
7878
<loc>/08_字典/dict/</loc>
79-
<lastmod>2018-06-10</lastmod>
79+
<lastmod>2018-06-11</lastmod>
8080
<changefreq>daily</changefreq>
8181
</url>
8282

8383

8484

8585
<url>
8686
<loc>/09_集合/set/</loc>
87-
<lastmod>2018-06-10</lastmod>
87+
<lastmod>2018-06-11</lastmod>
8888
<changefreq>daily</changefreq>
8989
</url>
9090

9191

9292

9393
<url>
9494
<loc>/10_递归/recursion/</loc>
95-
<lastmod>2018-06-10</lastmod>
95+
<lastmod>2018-06-11</lastmod>
9696
<changefreq>daily</changefreq>
9797
</url>
9898

9999

100100

101101
<url>
102102
<loc>/11_线性查找与二分查找/search/</loc>
103-
<lastmod>2018-06-10</lastmod>
103+
<lastmod>2018-06-11</lastmod>
104104
<changefreq>daily</changefreq>
105105
</url>
106106

107107

108108

109109
<url>
110110
<loc>/12_基本排序算法/basic_sort/</loc>
111-
<lastmod>2018-06-10</lastmod>
111+
<lastmod>2018-06-11</lastmod>
112112
<changefreq>daily</changefreq>
113113
</url>
114114

@@ -117,19 +117,19 @@
117117

118118
<url>
119119
<loc>/13_高级排序算法/advanced_sorting/</loc>
120-
<lastmod>2018-06-10</lastmod>
120+
<lastmod>2018-06-11</lastmod>
121121
<changefreq>daily</changefreq>
122122
</url>
123123

124124
<url>
125125
<loc>/13_高级排序算法/merge_sort/</loc>
126-
<lastmod>2018-06-10</lastmod>
126+
<lastmod>2018-06-11</lastmod>
127127
<changefreq>daily</changefreq>
128128
</url>
129129

130130
<url>
131131
<loc>/13_高级排序算法/quick_sort/</loc>
132-
<lastmod>2018-06-10</lastmod>
132+
<lastmod>2018-06-11</lastmod>
133133
<changefreq>daily</changefreq>
134134
</url>
135135

@@ -138,55 +138,55 @@
138138

139139
<url>
140140
<loc>/14_树与二叉树/tree/</loc>
141-
<lastmod>2018-06-10</lastmod>
141+
<lastmod>2018-06-11</lastmod>
142142
<changefreq>daily</changefreq>
143143
</url>
144144

145145

146146

147147
<url>
148148
<loc>/15_堆与堆排序/heap_and_heapsort/</loc>
149-
<lastmod>2018-06-10</lastmod>
149+
<lastmod>2018-06-11</lastmod>
150150
<changefreq>daily</changefreq>
151151
</url>
152152

153153

154154

155155
<url>
156156
<loc>/16_优先级队列/priority_queue/</loc>
157-
<lastmod>2018-06-10</lastmod>
157+
<lastmod>2018-06-11</lastmod>
158158
<changefreq>daily</changefreq>
159159
</url>
160160

161161

162162

163163
<url>
164164
<loc>/17_二叉查找树/binary_search_tree/</loc>
165-
<lastmod>2018-06-10</lastmod>
165+
<lastmod>2018-06-11</lastmod>
166166
<changefreq>daily</changefreq>
167167
</url>
168168

169169

170170

171171
<url>
172172
<loc>/18_图与图的遍历/graph/</loc>
173-
<lastmod>2018-06-10</lastmod>
173+
<lastmod>2018-06-11</lastmod>
174174
<changefreq>daily</changefreq>
175175
</url>
176176

177177

178178

179179
<url>
180180
<loc>/19_python内置常用算法和数据结构/builtins/</loc>
181-
<lastmod>2018-06-10</lastmod>
181+
<lastmod>2018-06-11</lastmod>
182182
<changefreq>daily</changefreq>
183183
</url>
184184

185185

186186

187187
<url>
188188
<loc>/20_面试指南/interview/</loc>
189-
<lastmod>2018-06-10</lastmod>
189+
<lastmod>2018-06-11</lastmod>
190190
<changefreq>daily</changefreq>
191191
</url>
192192

0 commit comments

Comments
 (0)