ソートアルゴリズム
<ソート選択>未処理のデータから最小のデータを選択し、前の を繰り返し使用する.の未処理データを選択し、適切な位置 に挿入する.選択ソートに比べて、実装の難易度は高いが、効率は高い データはある程度並べ替えた場合に有効な である.は基準データを設定し、 はビッグデータとビッグデータの位置を変更した並べ替えと並べ替えライブラリの基礎となるアルゴリズム 最も基本的な設定は、最初のデータをPivotに設定することです. 昇順:左側にピボットより大きい値を検索し、右側にピボットより小さい値を検索 は、特定の条件を満たす場合にのみ利用可能であるが、動作速度は非常に速い である.データのサイズが整数形式に制限場合は を用いる.最悪の場合でも (データ個数+データ個数)のうち最高値を保証できる
# 선택 정렬
array = [7, 5, 9, 0, 3, 1, 6, 2, 4, 8]
for i in range(len(array)):
min_index = i
for j in range(i + 1, len(array)):
if array[min_index] > array[j]:
min_index = j
array[i], array[min_index] = array[min_index], array[i]
print(array)
<ソートの挿入># 삽입 정렬
array = [7, 5, 9, 0, 3, 1, 6, 2, 4, 8]
for i in range(1, len(array)):
for j in range(i, 0, -1):
if array[j-1] > array[j]:
array[j], array[j-1] = array[j-1], array[j]
else:
break
print(array)
<クイックソート># 퀵정렬
array = [5, 7, 9, 0, 3, 1, 6, 2, 4, 8]
def quick_sort(array, start, end):
if start >= end:
return
pivot = start
left = start + 1
right = end
while(left <= right):
while(left <= end and array[left] <= array[pivot]):
left += 1
while(right > start and array[right] >= array[pivot]):
right -= 1
if(left > right):
array[right], array[pivot] = array[pivot], array[right]
else:
array[left], array[right] = array[right], array[left]
quick_sort(array, start, right - 1)
quick_sort(array, right + 1, end)
quick_sort(array,0,len(array)-1)
print(array)
# 파이썬의 장점을 살린 퀵정렬
def quick_sort(array):
if len(array) <= 1:
return array
pivot = array[0]
tail = array[1:]
left_side = [x for x in tail if x <= pivot]
right_side = [y for y in tail if y > pivot]
return quick_sort(left_side) + [pivot] + quick_sort(right_side)
print(quick_sort(array))
<ソート数># 계수 정렬
array = [7, 5, 9, 0, 3, 1, 6, 2, 9, 1, 4, 8, 0, 5, 2]
count = [0] * (max(array) + 1)
for i in range(len(array)):
count[array[i]] += 1
for i in range(len(count)):
for j in range(count[i]):
print(i, end = " ")
<比較ソートアルゴリズム>Reference
この問題について(ソートアルゴリズム), 我々は、より多くの情報をここで見つけました https://velog.io/@baebae/정렬-알고리즘テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol