この記事では主にPythonのクイックソートと挿入ソートアルゴリズムの実装とカスタムソートの例を紹介します。必要な友達はそれを参照してください
1. クイックソート。 バブルソート
の改良です。 1962 年に C. A. R. ホアによって提案されました。その基本的な考え方は、1 回の並べ替えで並べ替えるデータを 2 つの独立した部分に分割し、一方の部分のすべてのデータがもう一方の部分のすべてのデータよりも小さくなり、この方法を使用してデータの 2 つの部分をすばやく分離することです。並べ替えでは、並べ替えプロセス全体を再帰的に実行できるため、データ全体が順序付けされたシーケンスになります。 迅速なソート、再帰的実装
def quick_sort(num_list): """ 快速排序 """ if num_list == []: return num_list smallList = [] bigList = [] middleElement = num_list[0] for i in num_list[1:]: if i <= middleElement: smallList.append(i) else: bigList.append(i) return quick_sort(smallList)+[middleElement]+quick_sort(bigList)
2. 挿入ソート
挿入ソートのアルゴリズムの説明は、シンプルで直感的なソート アルゴリズムです。ソートされていないデータの場合は、ソートされたシーケンスを後ろから前にスキャンし、対応する位置を見つけて挿入します。挿入ソートの実装では、通常、インプレース ソートが使用されます (つまり、O(1) 個の余分なスペースのみを使用するソート)。したがって、後ろから前へのスキャン プロセス中に、ソートされた要素を繰り返して徐々に行う必要があります。後方にシフトされ、最新の要素の挿入スペースが提供されます。
挿入sortdef insert_sort(num_list): """ 插入排序 """ for i in range(len(num_list)-1): for j in range(i+1, len(num_list)): if num_list[i]>num_list[j]: num_list[i],num_list[j] = num_list[j],num_list[i] return num_list
3. カスタムソート
sort()またはsorted()のキーを使用して実現します。
例は次のとおりです:
def sort_key(obj): sorted_list = [4, 2, 5, 9, 7, 8, 1, 3, 6, 0] return sorted_list.index(obj) if name == 'main': print sorted(range(10), key=sort_key) # 输出结果如下 [4, 2, 5, 9, 7, 8, 1, 3, 6, 0]
index
位置を使用してカスタム並べ替えを実行します以上がPythonクイックソート、挿入ソートアルゴリズム、カスタムソート例の詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。