-
[Python] 버블 정렬(Buble sort)Algorithm 2020. 3. 15. 20:06
Buble sort
- 두 인접한 데이터를 비교해서 앞에 있는 데이터가 뒤에 있는 데이터보다 크면, 자리를 바꾸는 정렬 알고리즘
특징
- 시간 복잡도가 O(n²)로 느리다.
- 코드가 단순하여 자주 사용된다.
Python Code
def bubleSort(data): for index in range(len(data) - 1): swap = False for idx in range(len(data) - index - 1): if data[idx] > data[idx+1]: data[idx], data[idx+1] = data[idx+1], data[idx] swap = True if swap == False: break return data
buble sort 확인하기
import random data_list = random.sample(range(100), 50) print(f"정렬 전: {data_list}") res = bubleSort(data_list) print(f"정렬 후: {res}")
ex) 결과 예시
'정렬 전: [24, 69, 96, 29, 67, 92, 11, 40, 70, 30, 37, 59, 56, 79, 46, 78, 58, 52, 55, 0, 16, 71, 68, 94, 98, 61, 27, 45, 93, 44, 64, 85, 19, 34, 28, 2, 76, 80, 57, 32, 3, 31, 43, 42, 17, 23, 14, 25, 74, 87]'
'정렬 후: [0, 2, 3, 11, 14, 16, 17, 19, 23, 24, 25, 27, 28, 29, 30, 31, 32, 34, 37, 40, 42, 43, 44, 45, 46, 52, 55, 56, 57, 58, 59, 61, 64, 67, 68, 69, 70, 71, 74, 76, 78, 79, 80, 85, 87, 92, 93, 94, 96, 98]'
참고
https://stackabuse.com/bubble-sort-in-python/
https://www.fun-coding.org/DS&AL4-4.html
'Algorithm' 카테고리의 다른 글
LRU(Least Recently Used) 알고리즘 (0) 2020.10.07 [Python] 병합 정렬(merge sort) (0) 2020.05.15 [Python] 백준 1302번 베스트셀러 (0) 2020.05.14 [Python] 삽입 정렬(Insertion sort) (0) 2020.03.26 [Python] 선택 정렬(selection sort) (0) 2020.03.18