ホームページ >バックエンド開発 >Python チュートリアル >Pythonでのソートアルゴリズムの実装方法まとめ(コード)

Pythonでのソートアルゴリズムの実装方法まとめ(コード)

不言
不言オリジナル
2018-09-27 14:48:001898ブラウズ

この記事はPythonでのソートアルゴリズムの実装方法をまとめたコード(コード)ですので、ある程度の参考になりますので、困っている方は参考にしていただければ幸いです。

1. 挿入ソート: 挿入ソートの基本操作は、ソートされた順序付きデータにデータを挿入し、番号に 1 を加えた新しい順序付きデータを取得することです。少量のデータのソート; 最初のデータをソート済みとして扱い、その後最後のデータを取り出してその都度先頭に挿入してソート;

def insert_sort(ilist):
    for i in range(len(ilist)):
        for j in range(i):
            if ilist[i] < ilist[j]:
                ilist.insert(j, ilist.pop(i))
                break
    return ilist
 
ilist = insert_sort([4,5,6,7,3,2,6,9,8])
print ilist

2. バブルソート: 繰り返し行う並べ替える項目を訪問します。 一度に 2 つの要素を比較し、順序が間違っている場合はそれらを入れ替えるシーケンス。配列を訪問する作業は、交換が必要なくなるまで繰り返され、配列がソートされたことになります。

def bubble_sort(blist):
    count = len(blist)
    for i in range(0, count):
        for j in range(i + 1, count):
            if blist[i] > blist[j]:
                blist[i], blist[j] = blist[j], blist[i]
    return blist
 
blist = bubble_sort([4,5,6,7,3,2,6,9,8])
print blist

3. クイック ソート: ソート対象のデータは、1 回のソートによって 2 つの独立した部分に分割されます。 pass (ここで、一方の部分のすべてのデータが、もう一方の部分のすべてのデータよりも小さい場合)、このメソッドを使用して、データの 2 つの部分をそれぞれすばやく並べ替えます。並べ替えプロセス全体は再帰的に実行できるため、データ全体が選択ソート: 最初のパスでは、ソート対象のレコード r1 ~ r[n] の中から最小のレコードを選択し、それを r1 と交換します。2 番目のパスでは、ソートされるレコード r2 ~ r[n] から最小のレコードを選択し、それを r2 と交換します。以下同様に、i 番目のパスのレコード r[i] がソートされます ~ r[n] から最小のレコードを選択し、それを r[i] と交換し、すべての並べ替えが完了するまで順序付けされたシーケンスが増加し続けるようにします

def quick_sort(qlist):
    if qlist == []:
        return []
    else:
        qfirst = qlist[0]
        qless = quick_sort([l for l in qlist[1:] if l < qfirst])
        qmore = quick_sort([m for m in qlist[1:] if m >= qfirst])
        return qless + [qfirst] + qmore
 
qlist = quick_sort([4,5,6,7,3,2,6,9,8])
print qlist

5. 二分探索: 主に 2 で割って探索します。

rree

以上がPythonでのソートアルゴリズムの実装方法まとめ(コード)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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