[TIL] Algorithm - 버블정렬

dev.soo·2020년 10월 11일
0

Algorithm

목록 보기
2/2

버블정렬이란?

거품 정렬(Bubble sort)은 두 인접한 원소를 검사하여 정렬하는 방법이다. 시간 복잡도가 {\displaystyle O(n^{2})}O(n^{2})로 상당히 느리지만, 코드가 단순하기 때문에 자주 사용된다. 원소의 이동이 거품이 수면으로 올라오는 듯한 모습을 보이기 때문에 지어진 이름이다. 양방향으로 번갈아 수행하면 칵테일 정렬이 된다.

1) 제일 첫 두 값을 비교해서 작은 것을 앞으로 옮긴다
2) 두번째/세번째 값을 비교해서 작은 것을 앞으로 옮긴다.
3) 세번째/네번쨰 값을 비교해서 작은 것을 앞으로 옮긴다 (끝까지 반복).
3) 제일 큰 값이 맨 뒤로 오게 되었으니, 제일 첫 두 값부터 끝에서 두 번째 값까지 반복한다.

def bubbleSort(arr):
    for i in range(len(arr),1,-1):
        for j in range(i-1):
            if arr[j] > arr[j+1]:
                arr[j], arr[j+1] = arr[j+1], arr[j]
    
    return arr


a = [2, 5, 6, 8, 10, 1, 3, 4, 7]

print(selectionSort(a))

결과 : [1, 2, 3, 4, 5, 6, 7, 8, 10]

내가 푼 방식:
for 문을 2 번 돌린다.
외부 for문: 내부 포문에서 확인 할 전체 리스트의 길이를 정해준다 (하나씩 줄여줌).
내부 for문: 맨 앞부터 시작해서, 주어진 전체 리스트의 뒤에서 두 번째 인덱스까지 비교해준다.

0개의 댓글