この記事では、「Stooge ソートアルゴリズム」について説明し、Python プログラミング言語での実装方法について学びます。
まず、Stoogeソートの紹介から始めましょう。
この記事もチェック:Pythonによる決定木アルゴリズムの実装を詳しく説明していく
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 ( " )
for i in range ( 0 , n):
print (arr[i], end = ' ' )
|
この記事もチェック:Pythonによるバブルソートの昇順、降順の実装方法とコードを解説する
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で実装する方法は?
この記事もチェック:Pythonでの選択ソートの実装方法を解説していく