ソート、多くのプログラミング言語は、多くの場合、問題となっています。同様に、Pythonで、どのようにソートそれを達成するには?(以下では、ソートリストに基づいて達成されます)
まず、組み込み関数の使用は、Pythonをソートします
Pythonは、ソート達成するための組み込み関数を持っている、あなたがそれらを直接呼び出すソート実装することができます
Pythonのリストには組み込まれてい list.sort()
直接リストを変更する方法を。あり、 sorted()
組み込み関数は、それが一回の反復オブジェクトから新しいランキングリストを構築します。
1.sort()関数:
list.sort(CMP =なし、キー=なし、偽=リバース)
パラメータの意味は以下のとおりです。
-
CMP -オプションのパラメータは、このパラメータは、ソートに指定されたパラメータを使用する方法である場合。
-
キー -主に比較の素子に用いられる、唯一つのパラメータは、特定のパラメータは、反復の関数は、対象から採取された反復の要素の一つをソートするように指定することができるです。
-
リバース -照合、真=降順リバース、 昇順=偽(デフォルト)を逆にします。
例えば、ソートすることができ、デフォルトのリストを入力します。
リスト= [1,2,4,5,3]
はlist.sort()
プリント(リスト)
>>> [1,2,3,4,5]
2.sorted()関数:
ソート(反復可能な、CMP =なし、キー=なし、偽=リバースません)
どこで:
-
反復処理可能 -イテラブル。
-
CMPは -反復することができ、この関数はルールに従わなければならないパラメータ値は、被験者から採取された、2つのパラメータの関数を比較すると、1よりも大きいが返され、それが-1未満である、0に等しいが返されます。
-
キー -主に比較の素子に用いられる、唯一つのパラメータは、特定のパラメータは、反復の関数は、対象から採取された反復の要素の一つをソートするように指定することができるです。
-
リバース照合を、= Trueの降順を逆転、= Falseの昇順(デフォルト)を逆に- 。
同様に、ソート()関数の使用は、例えば、リストを並べ替えることができます。
リスト= [1,2,4,5,3 ] の印刷(ソート(リスト)) >>> [1,2,3,4,5]
ソート()およびソート()、類似したものの、ソート機能を実現することができますが、彼らは非常に異なっています:
ソート()およびソート()の違い:
ソート()メソッドは、リストに適用されるソート()すべてのオブジェクトの繰り返しを動作させるために注文することがあります。
ソート()メソッドのリストは、既存のオペレーションのリストを返し、戻り値なし、ソートされた組み込み関数()メソッドではなく、元に基づいて動作するよりも、新しいリストを返します。
第二に、ソートするための一般的なソートアルゴリズムを使用して
他の高レベルの機能と同様に、Pythonはまた、一般的な文の使用をソートするためのアルゴリズムを使用することができます。
1.バブルソート
バブルソートは、最も一般的に見ソートアルゴリズムは非常に基本的なソートアルゴリズムです。その実装が考えている2つの隣接する要素を比較し、(順方向)バックにより大きな要素、最大の要素が最後の位置に置かれた後に比較して、魚のよう吐水気泡に、上昇の過程で大きく大きくなります
DEF (リスト)bubble_sort: カウント = LEN(リスト) のために私に(カウント)範囲: のための J における範囲(I + 1 :カウント) もしリスト[I]> リスト[J]: リスト[i]は、リスト[ J] = リスト[j]と、リスト[i]は 、戻りリスト
2. [ソート
思考のようなものを選択している:比較的疲れのこのラウンドの要素との比較の最初の要素のすべて、最初の要素よりも大きい場合は、交換の最初の要素は、見つけるために最初のラウンド、最小要素、要素及び第二要素の全てがそのように第二の位置の要素を識別し、そしてするために比較される第二ラウンド、。
デフselection_sort(リスト): 長さ = LEN(リスト) のための I における範囲(長さ- 1、0、-1 ) のために、J における範囲(I): もしリスト[J]> リスト[I]: リスト[J] 、リスト[i]を = リスト[i]は、リスト[j]は 、戻りリスト
3.挿入ソート
アイデアは、アルゴリズムは、少量のデータに適して並べ替え、新しい、プラス、シーケンスデータの数を取得するためにデータを命じ、すでにソートされたデータに挿入され、インサートをソートしている、時間計算量はO(nは^ 2)。安定したソート方法。第2の部分はこれの唯一の要素を含むが最初の部分は、アレイのすべての要素を含むが、最後の要素を除く(スペースに挿入された位置を有するアレイを聞かせ):アレイが2つの部分に分かれてソートする挿入アルゴリズム(すなわち、挿入される要素)。最初の選別部の完了後、最後の要素は、ソートされた第一の部分に挿入されています
DEF (リスト)insert_sort: カウント = LEN(リスト)の ための I に範囲(1 、カウント): キー = [I]リスト J - = I 1 ながら、 J> = 0 であればリスト[J]> キー: リスト[J + 1] = リスト[J] リスト[J] = キー J - = 1 戻りリスト
4.クイックソート
思考のクイックソートは次のとおりです。個別に速い二つの部分には2つの独立した部分、すべてのデータの他の部分よりも、すべてのデータが小さくなるように一部、データのこの方法に分類されるデータを順序付けることによって旅ソート、プロセス全体をソートすると、順序付けられたシーケンスにデータ全体を達成するために、再帰的にすることができます。
デフ(リスト、左、右)quick_sort: 場合 > =左、右: リターン・リストの キーを = リスト[左] 低 = 左 高 = 右 中左< 右: しばらく左<右とリスト[右]> = キー: 右 - = 1つの リスト[左]は = リスト[右] ながら左<右とリスト[左] <= キー: 左 + = 1つの リスト[右] =リスト[左] リスト[右] = キー quick_sort(低リスト、左 - 1 ) (左のリスト、quick_sort 1 + 高) の戻りリスト LST1 = 。raw_input()スプリット()#调用函数 LST = [INT(I )のために、私はでLST1] #1 LST =入力() quick_sort(LST、0、LEN(LST)-1 ) のための I における範囲(LEN(LST)): 印刷 [I] LST、
5.シェルソート
ヒルは、ソート挿入ソートです。また、狭いインクリメントソート、直接挿入ランキングアルゴリズムより効率的な改良版として知られています。非定常ソートアルゴリズムをソートヒル。DLための方法。シェルは、その1959年に名付けられました。シェルソート単位で記録パケットを押すの主題である、直接挿入ソートの使用は、各ソートアルゴリズムは、増加とともに徐々に減少し、より多くのキーワードをそれぞれ含む、増分に減少したときに、ファイル全体がひとつのセットに分割され、アルゴリズムは終了します。
DEF shell_sort(リスト): カウント = LEN(リスト) ステップ = 2 群 =カウント/ ステップ ながらグループ> :0 のための I における範囲(グループ): J =私は+ 基を つつ J < :カウント K - = jのグループ キー = リスト[J] 一方、K> = 0: もしリスト[K]> キー: リスト[K +基] =リスト[K] リスト[K] = キー K - = グループ J + = 族 基 / = ステップ リターンリスト