Pythonでストゥージソート(Stooge Sort)を実装する方法

スポンサーリンク

この記事では、「Stooge ソートアルゴリズム」について説明し、Python プログラミング言語での実装方法について学びます。

まず、Stoogeソートの紹介から始めましょう。

スポンサーリンク

I

Stoogeソートアルゴリズムに含まれるステップ

Stooge Sort Algorithmにはいくつかのステップがあります。

まず、配列が関数に渡され、最初の要素と最後の要素を比較して、最初の要素の方が小さければ入れ替えます。

次に配列のサイズを考慮し、もし size>2 ならば配列の各部分を再帰的に呼び出し、配列の最初、最後、そして再び最初の 2/3 の部分をソートします。

最後に、ソートされた配列を画面に表示するだけです。

では、このソートアルゴリズムのコード実装を見てみましょう。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
def stoogesort(arr, start, end):
     
    # Check if there are elements in the array
    if start >= end:
        return
     
    # Check first element with the last element
    if arr[start]>arr[end]:
        temp = arr[start]
        arr[start] = arr[end]
        arr[end] = temp
     
    # Check if the number of elements are more than 2
    if end-start+1 > 2:
        temp = (int)((end-start+1)/3)
        # Recursively call the parts of array to be sorted
        stoogesort(arr, start, (end-temp))
        stoogesort(arr, start+temp, (end))
        stoogesort(arr, start, (end-temp))
 
# Take Input of the Unorted Array
arr = list(map(int,input("Enter all the numbers of array separated by a space: ").split()))
n = len(arr)
           
# Print the Unsorted Array
print("The original unsorted array is: ")
for i in range(0, n):
    print(arr[i], end = ' ')
 
stoogesort(arr, 0, n-1)
           
# Print the Sorted Array
print("
The sorted array is: "
)
for i in range(0, n):
    print(arr[i], end = ' ')

Pythonでストゥージソートを実装する

理論はさておき、Pythonでstooge sortを実装する方法を学びましょう。

この例では、このアルゴリズムの各ステップをよく理解できるようにドキュメント化されています。

Enter all the numbers of array separated by a space: 23 2 9 -3 0 34 1
The original unsorted array is:
23 2 9 -3 0 34 1
The sorted array is:
-3 0 1 2 9 23 34

Example outputs

Fake tag
fake tag

—Fake tag

おわりに

ソートアルゴリズムとその実装を理解し、気に入っていただけたなら幸いです。

ぜひ試してみてください。

こちらもどうぞ。

  • Pythonのブリックソートアルゴリズム【簡単に実装できる】 ※英語版のみ
  • Pythonでの選択ソート
  • Pythonの挿入ソート(Insertion Sort
  • QuickSortをPythonで実装する方法は?
タイトルとURLをコピーしました