ソートアルゴリズムの選択
1100 ワード
今日は選択ソートについて知りたいです.
選択ソートは、配列の最小数値を選択し、未ソート配列の一番左の要素と交換する操作を繰り返してソートする方法です.
並べ替えられていない配列の最小数を選択します.
[70, 31, 3, 72, 20]
選択した要素とソートされていない配列の一番左の要素を最小数で交換します.
[70, 31, 3, 72, 20] --> [ 3, 31, 70, 72, 20]
上の1番2番のプロセスを整列するまで繰り返します.
[70, 31, 3, 72, 20] --> [ 3, 31, 70, 72, 20]
[ 3, 31, 70, 72, 20] --> [ 3, 20, 70, 72, 31]
[ 3, 20, 70, 72, 31] --> [ 3, 20, 31, 72, 70]
[ 3, 20, 31, 72, 70] --> [ 3, 20, 31, 70, 72]
選択ソートは、配列の最小数値を選択し、未ソート配列の一番左の要素と交換する操作を繰り返してソートする方法です.
並べ替えられていない配列の最小数を選択します.
[70, 31, 3, 72, 20]
index = 0
for j in range(len(data)):
if data[index] > data[j] :
index = j
選択した要素とソートされていない配列の一番左の要素を最小数で交換します.
[70, 31, 3, 72, 20] --> [ 3, 31, 70, 72, 20]
index = 0
for j in range(len(data)):
if data[index] > data[j] :
index = j
data[0], data[index] = data[index], data[0]
上の1番2番のプロセスを整列するまで繰り返します.
[70, 31, 3, 72, 20] --> [ 3, 31, 70, 72, 20]
[ 3, 31, 70, 72, 20] --> [ 3, 20, 70, 72, 31]
[ 3, 20, 70, 72, 31] --> [ 3, 20, 31, 72, 70]
[ 3, 20, 31, 72, 70] --> [ 3, 20, 31, 70, 72]
def select(data):
for i in range(len(data)-1):
index = i
for j in range(i+1, len(data)):
if data[index] > data[j]:
index = j
if i != index:
data[i], data[index] = data[index], data[i]
return data
Reference
この問題について(ソートアルゴリズムの選択), 我々は、より多くの情報をここで見つけました https://velog.io/@super-d/알고리즘-선택-정렬テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol