urlデリバリーアルゴリズムは時間の複雑さを低減する(pythonテクニック)
897 ワード
urlをキャプチャする過程において、一般的に重み付けを行うpythonはurlをリストリストリストに格納するlist(時間複雑度On)を利用して実現され、時間複雑度によってlistはurl数の増加に伴って時間複雑度が徐々に増加するので、
辞書(時間的複雑度O 1)を利用して、urlの大量増加による時間的複雑度の低減を行う
加えて時間の複雑さが増す.
リストによるurlの消去形式
次にdefaultdictを用いてこの重み付け方法を実現し,次のコードの論理がdictに存在しない場合
urlは、urlを辞書に格納し、実行しないコードがある場合は1に割り当てます.
辞書(時間的複雑度O 1)を利用して、urlの大量増加による時間的複雑度の低減を行う
加えて時間の複雑さが増す.
リストによるurlの消去形式
urls = []
# for url, url
for i in xrange(10000):
url = "http://www.baidu.com/test.php?id=a&testid={i}".format(i=i)
# list
if url not in urls:
urls.append(url)# url On
次にdefaultdictを用いてこの重み付け方法を実現し,次のコードの論理がdictに存在しない場合
urlは、urlを辞書に格納し、実行しないコードがある場合は1に割り当てます.
urls = defaultdict(lambda:'none_value')
# for url, url
for i in xrange(10000):
url = "http://www.baidu.com/test.php?id=a&testid={i}".format(i=i)
# dict
if urls[url] == "none_value":
urls.update({url:"1"})
# url O1