ソートアルゴリズム
泡の位置合わせ
2つの隣接要素
for i = 0 to (arr의 크기-1) do
for j = 0 to (arr의 크기-2-i) do
if arr[j]가 arr[j+1]보다 크면
then arr[j+1]과 arr[j] 교환
endif
endfor
endfor
ソートの選択
for i = 0 to (arr의 크기-1) do
min_index = i
for j = i to (arr의 크기-1) do
가장 작은 원소 찾아서 min_index에 넣어주기
endfor
arr[i]와 arr[min_index]값 교환
endfor
整列挿入
for i = 1 to (arr의 크기-1) do
index = i-1
while index가 0보다 크거나 같고 arr[index] > arr[index+1]
arr[index]와 arr[index+1] 교환
index-=1
endwhile
endfor
選択ソートと同様に、すべての
連結ソート
function mergeSort(a: 배열):
if a의 사이즈가 1보다 작거나 같으면
return a
endif
mid = len(a)를 2로 나눈 몫
left = mergeSort(a[:mid])
right = mergeSort(a[mid:])
return merge(left, right)
function merge(left: 배열, right: 배열):
i = 0, j = 0
res = []
while i가 len(left)보다 작고, j가 len(right)보다 작을때
if left[i] <= right[j]
then left[i]를 res에 push하고 i 1 증가
else left[j]를 res에 push하고 j 1 증가
endif
endwhile
while i가 len(left)보다 작음
left[i]를 res에 push하고 i에 1 증가
while j가 len(right)보다 작음
left[j]를 res에 push하고 j에 1 증가
return res
クイックソート
function quickSort(arr: 배열, start: 시작 인덱스, end: 끝 인덱스):
pivot = start
left = pivot+1
right = end
while left <= right:
while left < end and arr[left] <= arr[pivot]:
left += 1
endwhile
while right > start and arr[right] >= arr[pivot]:
right -= 1
endwhile
if left <= right:
then arr[left],arr[right] = arr[right], arr[left]
endwhile
arr[right], arr[pivot] = arr[pivot], arr[right]
quickSort(arr, start, right-1)
quickSort(arr, right+1, end)
お尻の位置合わせ
平均
Reference
この問題について(ソートアルゴリズム), 我々は、より多くの情報をここで見つけました https://velog.io/@jujube0/정렬-알고리즘テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol