Pythonでソートアルゴリズムを実現――高速ソート


クイックソート(QuickSort)は実用的なアルゴリズムで、使いやすくて1つの「速い」字に使いやすくて、しかもそれは分治の策略を採用して、分治は名の通り「分而治之」で、1つの大きい問題を多くの小さい問題に分けて1つずつ解決して、この思想は大きいデータを処理する時かなり有効で、もっと詳しくて通俗的な原理の解析はここを見てください.
ダイレクトコード:
def partition(sort_list, left, right):
    key = sort_list[left]
    while left < right :
        while left < right and sort_list[right] >= key :
            right -= 1
        if left < right and sort_list[right] < key:
            sort_list[left] = sort_list[right]
            left += 1
        while left < right and sort_list[left] >= key:
            left += 1
        if left < right and sort_list[left] < key:
            sort_list[right] = sort_list[left]
            right -= 1
    sort_list[left] = key
    return left
def quickSort(sort_list, left, right):
    if left < right :
        i = partition(sort_list, left, right)
        quickSort(sort_list, left, right-1)
        quickSort(sort_list, left+1, right)
    return sort_list

このコードは関数に統合でき、自分で最適化することができます.コードは最初の要素を初期基準とし,再帰的な方法で実現される.再帰は比較的効率の低い方法であるが,コード構造を明確に理解しやすくし,分治戦略のアルゴリズムの大部分を再帰で実現することができる.