Skip to content

Commit cc29d48

Browse files
committed
Deployed 5e02a9c with MkDocs version: 0.17.3
1 parent c350b3d commit cc29d48

File tree

19 files changed

+500
-13
lines changed

19 files changed

+500
-13
lines changed

00_课程简介之笨方法学算法/why_and_how_to_learn/index.html

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,11 @@
119119
<a class="" href="../../10_递归/recursion/">递归</a>
120120
</li>
121121

122+
<li class="toctree-l1">
123+
124+
<a class="" href="../../11_线性查找与二分查找/search/">线性查找与二分查找</a>
125+
</li>
126+
122127
</ul>
123128
</div>
124129
&nbsp;

01_抽象数据类型和面向对象编程/ADT_OOP/index.html

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,11 @@
128128
<a class="" href="../../10_递归/recursion/">递归</a>
129129
</li>
130130

131+
<li class="toctree-l1">
132+
133+
<a class="" href="../../11_线性查找与二分查找/search/">线性查找与二分查找</a>
134+
</li>
135+
131136
</ul>
132137
</div>
133138
&nbsp;

02_数组和列表/array_and_list/index.html

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,11 @@
128128
<a class="" href="../../10_递归/recursion/">递归</a>
129129
</li>
130130

131+
<li class="toctree-l1">
132+
133+
<a class="" href="../../11_线性查找与二分查找/search/">线性查找与二分查找</a>
134+
</li>
135+
131136
</ul>
132137
</div>
133138
&nbsp;

03_链表/linked_list/index.html

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,11 @@
125125
<a class="" href="../../10_递归/recursion/">递归</a>
126126
</li>
127127

128+
<li class="toctree-l1">
129+
130+
<a class="" href="../../11_线性查找与二分查找/search/">线性查找与二分查找</a>
131+
</li>
132+
128133
</ul>
129134
</div>
130135
&nbsp;

04_队列/queue/index.html

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,11 @@
125125
<a class="" href="../../10_递归/recursion/">递归</a>
126126
</li>
127127

128+
<li class="toctree-l1">
129+
130+
<a class="" href="../../11_线性查找与二分查找/search/">线性查找与二分查找</a>
131+
</li>
132+
128133
</ul>
129134
</div>
130135
&nbsp;

05_栈/stack/index.html

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,11 @@
122122
<a class="" href="../../10_递归/recursion/">递归</a>
123123
</li>
124124

125+
<li class="toctree-l1">
126+
127+
<a class="" href="../../11_线性查找与二分查找/search/">线性查找与二分查找</a>
128+
</li>
129+
125130
</ul>
126131
</div>
127132
&nbsp;

06_算法分析/big_o/index.html

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,11 @@
137137
<a class="" href="../../10_递归/recursion/">递归</a>
138138
</li>
139139

140+
<li class="toctree-l1">
141+
142+
<a class="" href="../../11_线性查找与二分查找/search/">线性查找与二分查找</a>
143+
</li>
144+
140145
</ul>
141146
</div>
142147
&nbsp;

07_哈希表/hashtable/index.html

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,11 @@
137137
<a class="" href="../../10_递归/recursion/">递归</a>
138138
</li>
139139

140+
<li class="toctree-l1">
141+
142+
<a class="" href="../../11_线性查找与二分查找/search/">线性查找与二分查找</a>
143+
</li>
144+
140145
</ul>
141146
</div>
142147
&nbsp;

08_字典/dict/index.html

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,11 @@
125125
<a class="" href="../../10_递归/recursion/">递归</a>
126126
</li>
127127

128+
<li class="toctree-l1">
129+
130+
<a class="" href="../../11_线性查找与二分查找/search/">线性查找与二分查找</a>
131+
</li>
132+
128133
</ul>
129134
</div>
130135
&nbsp;

09_集合/set/index.html

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,11 @@
128128
<a class="" href="../../10_递归/recursion/">递归</a>
129129
</li>
130130

131+
<li class="toctree-l1">
132+
133+
<a class="" href="../../11_线性查找与二分查找/search/">线性查找与二分查找</a>
134+
</li>
135+
131136
</ul>
132137
</div>
133138
&nbsp;

10_递归/recursion.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ def print_num_use_stack(n):
5050

5151
while not s.is_empty(): # 参数弹出
5252
print(s.pop())
53+
54+
5355
def hanoi_move(n, source, dest, intermediate):
5456
if n >= 1: # 递归出口,只剩一个盘子
5557
hanoi_move(n-1, source, intermediate, dest)

10_递归/recursion/index.html

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,11 @@
134134
</ul>
135135
</li>
136136

137+
<li class="toctree-l1">
138+
139+
<a class="" href="../../11_线性查找与二分查找/search/">线性查找与二分查找</a>
140+
</li>
141+
137142
</ul>
138143
</div>
139144
&nbsp;
@@ -347,6 +352,8 @@ <h1 id="_8">思考题</h1>
347352

348353
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
349354

355+
<a href="../../11_线性查找与二分查找/search/" class="btn btn-neutral float-right" title="线性查找与二分查找">Next <span class="icon icon-circle-arrow-right"></span></a>
356+
350357

351358
<a href="../../09_集合/set/" class="btn btn-neutral" title="集合"><span class="icon icon-circle-arrow-left"></span> Previous</a>
352359

@@ -377,6 +384,8 @@ <h1 id="_8">思考题</h1>
377384
<span><a href="../../09_集合/set/" style="color: #fcfcfc;">&laquo; Previous</a></span>
378385

379386

387+
<span style="margin-left: 15px"><a href="../../11_线性查找与二分查找/search/" style="color: #fcfcfc">Next &raquo;</a></span>
388+
380389
</span>
381390
</div>
382391
<script>var base_url = '../..';</script>
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# -*- coding: utf-8 -*-
2+
3+
number_list = [0, 1, 2, 3, 4, 5, 6, 7]
4+
5+
6+
def linear_search(value, iterable):
7+
for index, val in enumerate(iterable):
8+
if val == value:
9+
return index
10+
return -1
11+
12+
13+
assert linear_search(5, number_list) == 5
14+
15+
16+
def linear_search_v2(predicate, iterable):
17+
for index, val in enumerate(iterable):
18+
if predicate(val):
19+
return index
20+
return -1
21+
22+
23+
assert linear_search_v2(lambda x: x == 5, number_list) == 5
24+
25+
26+
def linear_search_recusive(array, value):
27+
if len(array) == 0:
28+
return -1
29+
index = len(array)-1
30+
if array[index] == value:
31+
return index
32+
return linear_search_recusive(array[0:index], value)
33+
34+
35+
assert linear_search_recusive(number_list, 5) == 5
36+
assert linear_search_recusive(number_list, 8) == -1
37+
assert linear_search_recusive(number_list, 7) == 7
38+
assert linear_search_recusive(number_list, 0) == 0
39+
40+
41+
def binary_search_recursive(sorted_array, beg, end, val):
42+
if beg >= end:
43+
return -1
44+
mid = int((beg + end) / 2) # beg + (end-beg)/2
45+
if sorted_array[mid] == val:
46+
return mid
47+
elif sorted_array[mid] > val:
48+
return binary_search_recursive(sorted_array, beg, mid, val) # 注意我依然假设 beg, end 区间是左闭右开的
49+
else:
50+
return binary_search_recursive(sorted_array, mid+1, end, val)
51+
52+
53+
def test_binary_search_recursive():
54+
# 我们测试所有值和边界条件
55+
a = list(range(10))
56+
for i in a:
57+
assert binary_search_recursive(a, 0, len(a), i) == i
58+
59+
assert binary_search_recursive(a, 0, len(a), -1) == -1
60+
assert binary_search_recursive(a, 0, len(a), 10) == -1

0 commit comments

Comments
 (0)