본문 바로가기

Algorithm/Sorting Algorithm

버블 정렬 (Bubble Sort)

728x90
반응형

버블 정렬

: 인접한 2개의 데이터를 비교하여 크면 교환하는 과정을 반복하여, 큰 값을 끝 부분에 위치시킨다.

 

출처: https://visualgo.net/en

 

 

 

알게된 개념

-> 처음 버블 정렬 코드를 접할 때, C언어로 공부했었는데 'swap' 개념에 대해서 잘 몰랐어서 공부했다!

 

"두 변수의 값을 서로 바꾸기"

 

C언어에서는 두 변수의 값을 서로 바꾸려면 변수가 하나 더 필요하다. 변수에 어떤 값이 대입되면 자신이 가지고 있던 값이 사라지고 새로 대입된 값이 저장되기 때문에 기존에 변수가 가지고 있던 값을 보관하고 싶다면 temp 변수를 하나 더 선언하고 그 변수에 값을 저장해야 한다.

 

공식 기억하기!!!
변수가 3개일 경우에도 같은 방식!!!

 

 

 

파이썬으로 버블정렬 구현하기

from random import randint

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

arr = [randint(1,50) for i in range(8)]
n = len(arr)
print(bubble_sort(arr))
728x90
반응형

'Algorithm > Sorting Algorithm' 카테고리의 다른 글

합병 정렬 (Merge Sort)  (0) 2021.07.14
힙 정렬 (Heap Sort)  (0) 2021.07.14
삽입 정렬 (Insertion Sort)  (0) 2021.07.14
퀵 정렬 (Quick Sort)  (0) 2021.07.13
선택 정렬 (Selection Sort)  (0) 2021.07.13