\

クイックソートは、様々なソートアルゴリズムの中でも、非常に高速でよく利用されている整列アルゴリズムです。この記事では、Pythonを用いてクイックソートの実装方法を紹介します。

クイックソートとは?

クイックソートは、リストから任意にデータを選択し、これを基準として小さい要素と大きい要素に分割し、それぞれのリストでまた同じような処理を繰り返してソートする方法です。基準となるデータをピボットと呼びます。

Pythonでのクイックソートの実装

以下に、Pythonでのクイックソートの実装例を示します。

def quick_sort(data):
    if len(data) <= 1:
        return data
    pivot = data.pop(0)
    left = [i for i in data if i <= pivot]
    right = [i for i in data if i > pivot]
    left = quick_sort(left)
    right = quick_sort(right)
    return left + [pivot] + right

if __name__ == '__main__':
    DATA = [6, 15, 4, 2, 8, 5, 11, 9, 7, 13]
    print(f"{DATA}{quick_sort(DATA)}")

このコードでは、リストの先頭をピボットとして取り出し、ピボットより小さいものでリストを作り、ピボットより大きいものでリストを作ります。そして、それぞれのリストに対して再帰的に同じ処理を行います。

クイックソートの計算量

クイックソートの計算量は、ピボットの選択がうまくいけば、マージソートと同様にO(n log n)となります。ただし、ピボットをうまく選ぶことができないと、最悪の場合、O(n^2)となります。

以上、Pythonでのクイックソートの実装方法について説明しました。このアルゴリズムを理解し、Pythonでの実装ができれば、より高度なアルゴリズムに挑戦するための一歩となるでしょう。.

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です