世界で闘うプログラミング力を鍛える本
p58
1文字列のソートにO(log s)
p61
code: python
def permutation(str, prefix):
if len(str) == 0:
print(prefix)
else:
for i in range(len(str)):
print("rem:", rem)
print("prefix + stri:", prefix + stri) permutation(rem, prefix + stri) permutation("abc", "")
# rem: bc
# rem: c
# rem:
# abc
# rem: b
# rem:
# acb
# rem: ac
# rem: c
# rem:
# bac
# rem: a
# rem:
# bca
# rem: ab
# rem: b
# rem:
# cab
# rem: a
# rem:
# cba
p64
code: python
def powerOf2(n):
if (n < 1):
return 0
elif (n == 1):
print(1)
return 1
else:
prev = powerOf2(n//2)
curr = prev * 2
print(curr)
return curr
powerOf2(50)
# 1
# 2
# 4
# 8
# 16
# 32
p66
1
O(b)
OK
2
O(b)
OK
3
O(1)
OK
4
O(b)
NG
5
O(logn)
OK
6
O(sqrt(n))
OK
7
O(n)
OK
8
O(n)
OK
9
O(n^2)
OK
10
O(1)
NG
11
O(n!*n)
NG
12
O((logb)*2*a)
NG
p166
9.1
db -> app -> キャッシュ -> クライアント
負荷分散
9.2
グラフアルゴリズム
N対N
9.3
visited
9.4
ハッシュ管理
9.5
query: result のハッシュ管理
リバースプロキシ マシンの前段
.item() = result でキャッシュクリア
9.6
id, name, category, ranking
category抽出
9.7
API
9.8
p179
11.1
11.2
メモリ不足
11.3
できる場合、できない場合、無効な値
11.4
stress
11.5
耐久性、恒久性、使用感
11.6
動作
p203
15.1
スレッドはプロセスの集合
15.2
15.3