Python
 Computer >> コンピューター >  >> プログラミング >> Python

挿入ソート用のPythonプログラム


この記事では、Python3.xでの挿入ソートの実装について学習します。またはそれ以前。

アルゴリズム

1. Iterate over the input elements by growing the sorted array at each iteration.
2. Compare the current element with the largest value available in the sorted array.
3. If the current element is greater, then it leaves the element in its place 
   and moves on to the next element else it finds its correct position in the 
   sorted array and moves it to that position in the array.
4. This is achieved by shifting all the elements towards the right, which are 
   larger than the current element, in the sorted array to one position ahead.

それでは、アルゴリズムの視覚的表現を見てみましょう-

挿入ソート用のPythonプログラム

それでは、実装を見てみましょう

def insertionSort(arr):
   for i in range(1, len(arr)):
      key = arr[i]
      # Move elements of arr[0..i-1], that are greater than key,
      # to one position ahead of their current position
      j = i-1
      while j >=0 and key < arr[j] :
         arr[j+1] = arr[j]
         j -= 1          
       arr[j+1] = key
# main
arr = ['t','u','t','o','r','i','a','l']
insertionSort(arr)
print ("The sorted array is:")
for i in range(len(arr)):
   print (arr[i])

出力

The sorted array is:
a
i
l
o
r
t
t
u

時間計算量 − o(n * 2)

補助スペース − o(1)

次の図に示すように、すべての変数はグローバルフレームで宣言されます-

挿入ソート用のPythonプログラム

結論

この記事では、Python3.xでの挿入ソートとその実装について学びました。またはそれ以前。


  1. バブルソート用のPythonプログラム

    この記事では、バブルソートの並べ替え手法の実装について学習します。 次の図は、このアルゴリズムの動作を示しています- アプローチ 最初の要素(インデックス=0)から始めて、現在の要素を配列の次の要素と比較します。 現在の要素が配列の次の要素よりも大きい場合は、それらを交換します。 現在の要素が次の要素よりも小さい場合は、次の要素に移動します。 手順1を繰り返します。 次に、以下の実装を見てみましょう- 例 def bubbleSort(ar):    n = len(arr)    # Traverse through

  2. 選択ソート用のPythonプログラム

    この記事では、Python3.xでの選択ソートとその実装について学習します。またはそれ以前。 選択ソート アルゴリズムでは、配列は、ソートされていない部分から最小要素を再帰的に見つけて、それを先頭に挿入することによってソートされます。特定の配列での選択ソートの実行中に、2つのサブ配列が形成されます。 すでにソートされているサブアレイ ソートされていないサブアレイ。 選択ソートを繰り返すたびに、ソートされていないサブアレイの最小要素がポップされ、ソートされたサブアレイに挿入されます。 アルゴリズムの視覚的表現を見てみましょう- それでは、アルゴリズムの実装を見てみましょう- 例