: 원소들을 번호순이나 사전 순서와 같이 일정한 순서대로 열거하는 알고리즘이다.

Internal Sort (내부 정렬)

→ 데이터량이 적을 때 주기억장치 내에서 정렬하는 방법으로, 속도가 빠르다는 장접이 있으나 자료의 양이 많을 경우에는 부적합하다.

Bubble Sort (버블 정렬)

→ 연속된 두 개의 인덱스를 비교하여, 조건에 맞지 않는다면 swap하여 정렬하는 알고리즘이다.

https://github.com/GimunLee/tech-refrigerator/raw/master/Algorithm/resources/bubble-sort-001.gif

오름차순으로 정렬하고자 할 경우, 비교할 때마다 큰 값이 뒤로 이동하며, 1바퀴를 다 돌 시 가장 큰 값이 맨 뒤에 저장된다. 맨 마지막에는 이미 가장 큰 수가 정렬되어 있기 때문에 n-1번(전체 배열의 크기 - 현재까지 순환한 바퀴 수) 반복해준다.

  1. 구현이 매우 간단하고, 소스코드가 직관적이다.
  2. 정렬하고자 하는 배열 안에서 교환하는 방식인 제자리 정렬(in-place sorting)이라 다른 메모리 공간이 필요하지 않다.
  3. 안정 정렬(stable sort)이다.
  1. 시간복잡도가 최악, 최선, 평균 모두 O(n$^2$)이라 비효율적이다.
  2. 정렬 돼 있지 않은 원소가 정렬 됐을 때의 자리로 가기 위해서 swap이 많이 일어난다.

progress