私は何もすることがありません、私はPythonに興味があります、私はこのアルゴリズム図を購入しました、私はそれが小説を読むようなものであることを願っています、hehe
目標:
(1)マスターバイナリ検索
(2)マスターデータ構造(配列、リンクリスト)
(3)マスター再帰
(4)マスター問題解決スキル
(5)マスターデータ構造(ハッシュテーブル)
(6)マスターグラフアルゴリズム
(7 )K個の最近傍アルゴリズムを習得する
(8)他のいくつかのアルゴリズムを理解する
アルゴリズムとは何ですか?
これはタスクを完了するための一連の命令であり、任意のコードフラグメントをアルゴリズムと見なすことができます。
なぜアルゴリズムを見るのですか?
一般的なアルゴリズム手法を使用して、コードの実行速度を向上させます。
二分探索とは何ですか?要素
の順序付きリストで、必要な要素をすばやく見つけます。x回しかかからず、2のx乗= N(nは入力要素の数です)。
たとえば、40億の順序付けられた要素では、入力したコンテンツを見つけるのに36回しかかかりません。これは本当に素晴らしいです
def binary_search(list, item):
low = 0
high = len(list)-1
while low <= high:
mid = int((low + high)/2)
guess = list[mid]
if guess == item:
return mid
if guess >item:
high = mid - 1
else:
low = mid + 1
return None
if __name__ == "__main__":
my_list = [1, 3, 5, 6, 7, 8, 9]
# 代表的是列表中的第几个元素
a = binary_search(my_list, 9)
# 输出是None,则说明没有这个元素
b = binary_search(my_list, -1)
print(a)
print(b)
アルゴリズムの実行時間は秒単位では測定されません。成長率で測定されます。実行時間はBigO表記で表されます。バイナリ検索は、単純検索よりもはるかに高速です。
ビッグ0表記:アルゴリズムの実行時間。
O(log n):二分探索を含む対数時間。
O(n):単純な検索を含む線形時間
O(n * log n):高速ソート、高速ソートアルゴリズム
O(n 2乗):選択的ソート、低速ソートアルゴリズム
O(n!):非常に低速アルゴリズム、n個異なる都市、最短の旅を確実にする方法は?確かに、すべての順列と組み合わせをリストする必要があり、順列と組み合わせの数はnの階乗です。