ホームページ  >  記事  >  バックエンド開発  >  Python はバブルソートを実装します

Python はバブルソートを実装します

高洛峰
高洛峰オリジナル
2016-10-19 17:23:161383ブラウズ

Pythonアルゴリズム - Pythonはバブルソートを実装します

バブルソートの動作原理:

隣接する要素を比較します。最初のものが 2 番目のものより大きい場合は、両方を交換します。

隣接する要素の各ペアに対して、最初のペアから始めて最後のペアで終わるまで、同じことを行います。この時点では、最後の要素が最大の数値である必要があります。

最後の要素を除くすべての要素に対して上記の手順を繰り返します。

比較する数値のペアがなくなるまで、要素の数を減らしながら上記の手順を繰り返します。


サンプルコード

# -*-エンコーディング: utf-8 -*-


def bubble_sort(seq, cmp=cmp):

"""バブルソート、疑似コードは次のとおりです:

BUBBLESORT(A)

1 for i ← 1 to length[A]

2 do for j ← length[A] downto i+1

3 do if A[j]

4。 )range範囲のIの場合(長さ):range範囲のj(長さ1、i、-1):seq [j]


return seq


if __name__ == '__main__':

ランダムにインポート、timeit


items = range(10000)

random.shuffle(items)

def test_sorted():

print(items)

sorted_items =sorted(items)

print(sorted_items)


def test_bubble_sort():

print(items)

sorted_items = bubble_sort(items)

print(sorted_items)


test_methods = [test_sorted, test_bubble_sort]


でのテスト:

名前 = テスト.__name__ # test.func_name

t = timeit.Timer(name + '()', 'from __main__ import ' + name)

print(name + ' には時間がかかります : %f' % t.timeit(1))

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。