__JMY__
MY Devblog
__JMY__
전체 방문자
오늘
어제
  • 분류 전체보기 (52)
    • Dev (52)
      • Algorithm (6)
      • Linux (12)
      • Network (7)
      • Container (2)
      • Python (14)
      • Frontend (2)
      • Etc (9)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • algorithm
  • Ingress
  • network
  • Python
  • springboot
  • Linux
  • Tuple
  • Kubernetes
  • frontend
  • Sorting
  • flask
  • certificate
  • hikaricp
  • flexbox
  • react
  • SCP
  • wget
  • Docker
  • tcpdump
  • hash

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
__JMY__

MY Devblog

Dev/Algorithm

Bubble Sort (버블정렬)

2020. 12. 22. 00:04

Bubble Sort (버블정렬)

버블소트는 인접한 요소들을 비교하여 정렬하는 알고리즘입니다.

인접한 두개의 요소들을 비교하여 크기가 순서대로 되어있지 않으면 서로 변경합니다.

O(n^2)의 시간복잡도를 가지지만 코드가 단순하여 자주 사용됩니다.

Bubble Sort 정렬과정

초기상태: (5 3 4 2 1)

  1. 1회전(3 5 4 2 1) -> (3 4 5 2 1) : 5 > 4, 교환(3 4 2 5 1) -> (3 4 2 1 5) : 5 > 1, 교환
  2. 결과: (3 4 2 1 5)
  3. (3 4 5 2 1) -> (3 4 2 5 1) : 5 > 2, 교환
  4. (5 3 4 2 1) -> (3 5 4 2 1) : 5 > 3, 교환
  5. 2회전(3 4 2 1 5) -> (3 2 4 1 5) : 4 > 2, 교환결과: (3 2 1 4 5)
  6. (3 2 4 1 5) -> (3 2 1 4 5) : 4 > 1, 교환
  7. (3 4 2 1 5) -> (3 4 2 1 5)
  8. 3회전(2 3 1 4 5) -> (2 1 3 4 5) : 3 > 1, 교환
  9. 결과: (2 1 3 4 5)
  10. (3 2 1 4 5) -> (2 3 1 4 5) : 3 > 2, 교환
  11. 4회전결과: (1 2 3 4 5)
  12. (2 1 3 4 5) -> (1 2 3 4 5) : 2 > 1, 교환

Bubble Sort 코드 (Python)

def bubble_sort(arr):
    length = len(arr)
    for i in range(length-1):
        for j in range(length-1-i):
            if arr[j] > arr[j+1]:
                tmp = arr[j]
                arr[j] = arr[j+1]
                arr[j+1] = tmp
    return arr
반응형

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

Merge Sort (병합정렬)  (0) 2021.07.15
다익스트라(Dijkstra) 알고리즘  (0) 2021.04.13
Heap Sort (힙정렬)  (0) 2020.12.29
Insertion Sort (삽입정렬)  (0) 2020.12.23
Selection Sort (선택정렬)  (0) 2020.12.22
    'Dev/Algorithm' 카테고리의 다른 글
    • 다익스트라(Dijkstra) 알고리즘
    • Heap Sort (힙정렬)
    • Insertion Sort (삽입정렬)
    • Selection Sort (선택정렬)
    __JMY__
    __JMY__
    공부내용 정리 블로그

    티스토리툴바