빅오 표기법은 알고리즘의 효율성을 표기해주는 표기법이다.

버블 정렬

Untitled

Untitled

Untitled

def bubble_sort(arr):
    for i in range(len(arr) - 1, 0, -1):
        swapped = False
        for j in range(i):
            if arr[j] > arr[j + 1]:
                arr[j], arr[j + 1] = arr[j + 1], arr[j]
                swapped = True
        if not swapped:
            break

선택 정렬

Untitled

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)):  # for문을 돌면서 가장 작은 원소를 찾아 넣어준다.
     	if array[min_index] > array[j]:
        	min_index = j
   	array[i], array[min_index] = array[min_index], array[i]
    
print(array)

삽입 정렬

Untitled

array = [7, 5, 9, 0, 3, 1, 6, 2, 4, 8]

for i in range(1, len(array)):   # 맨처음 원소는 정렬되었다고 가정. 1부터 시작한다
	for j in range(i, 0, -1):  # 인덱스 i부터 1까지 1씩 감소
    	if array[j] < array[j-1]:  # 내가 내 왼쪽보다 작다면 한칸 왼쪽으로 이동
        	array[j], array[j-1] = array[j-1], array[j]
        else:
        	break
            
print(array)