擬似コード
Pythonで実装
# date: 2019-12-04
# author: sty
def insert_sort(arr):
for i in range(1, len(arr)):
key = arr[i]
j = i - 1
while j >= 0 and arr[j] > key:
arr[j + 1] = arr[j]
j = j - 1
arr[j + 1] = key
return arr
A = [5, 2, 4, 6, 1, 3]
B = [4, 3, 2, 1, 1, 2, 3]
print(insert_sort(A)) # [1, 2, 3, 4, 5, 6]
print(insert_sort(B)) # [1, 1, 2, 2, 3, 3, 4]
--------------------------------------------------------
# date: 8pm, 2019-12-04
# my version
# created when solving Lintcode problem #463
def sortIntegers(A):
# insert sort
for i in range(1, len(A)):
j = i - 1
while j >= 0 and A[j] > A[j+1]:
A[j], A[j+1] = A[j+1], A[j]
j -= 1
return A
A = [5, 2, 4, 6, 1, 3]
B = [4, 3, 2, 1, 1, 2, 3]
print(sortIntegers(A)) # [1, 2, 3, 4, 5, 6]
print(sortIntegers(B)) # [1, 1, 2, 2, 3, 3, 4]
以下からの写真実験棟
参照
「アルゴリズムの概要」