자료구조, 알고리즘

버블 정렬 vs 선택 정렬 vs 삽입 정렬 성능 테스트 코드

gudwns5533 2026. 6. 11. 00:21
import random
import time

def bubblesort(list, N):
    for i in range(N-1):
        for j in range(N-1-i):
            if list[j] <= list[j+1]:
                continue
            else:
                list[j], list[j+1] = list[j+1], list[j]

def selectionsort(list):
    for i in range(len(list)):
        min_index = i

        for j in range(i+1, len(list)):
            if list[min_index] > list[j]:
                min_index = j
    
        list[i], list[min_index] = list[min_index], list[i]

def insertionsort(list):
    for i in range(1, len(list)):
        for j in range(i, 0, -1):
            if list[j] < list[j - 1]:
                list[j], list[j - 1] = list[j - 1], list[j]
            else:
                break

random.seed(50)
data = [random.randint(1, 1000000) for _ in range(10000)]
start_time = time.time()
bubblesort(data, len(data))
end_time = time.time()
total_time = end_time - start_time
print(f'{total_time:.4f}초')
print(data)

random.seed(50)
data = [random.randint(1, 1000000) for _ in range(10000)]
start_time = time.time()
selectionsort(data)
end_time = time.time()
total_time = end_time - start_time
print(f'{total_time:.4f}초')
print(data)

random.seed(50)
data = [random.randint(1, 1000000) for _ in range(10000)]
start_time = time.time()
insertionsort(data)
end_time = time.time()
total_time = end_time - start_time
print(f'{total_time:.4f}초')
print(data)

결과값

# 1차
4.1660초
1.8248초
2.8128초

# 2차
4.2410초
1.8557초
2.7622초

# 3차
4.2034초
1.8522초
2.8110초

# 4차
4.1582초
1.8763초
2.7562초

# 5차
4.2101초
1.8806초
2.7803초

 

'자료구조, 알고리즘' 카테고리의 다른 글

퀵 정렬 (Quick Sort)  (0) 2026.06.14
병합 정렬 (Merge Sort)  (0) 2026.06.13
삽입 정렬 (Insertion Sort)  (0) 2026.06.10
선택 정렬 (Selection Sort)  (0) 2026.06.10
버블 정렬 (Bubble Sort)  (0) 2026.06.10