정렬 알고리즘 | 정의 |
---|---|
버블(bubble) | 데이터의 인접 요소끼리 비교하고, swap 연산을 수행하며 정렬하는 방식 |
선택(selection) | 대상에서 가장 크거나 작은 데이터를 찾아가 선택을 반복하면서 정렬하는 방식 |
삽입(insertion) | 대상을 선택해 정렬된 영역에서 선택 데이터의 적절한 위치를 찾아 삽입하면서 정렬하는 방식 |
퀵(quick) | pivot 값을 선정해 해당 값을 기준으로 정렬하는 방식 |
병합(merge) | 이미 정렬된 부분 집합들을 효율적으로 병합해 전체를 정렬하는 장식 |
기수(radix) | 데이터의 자릿수를 바탕으로 비교해 데이터를 정렬하는 방식 |
버블 정렬(bubble sort)는 두 인접한 데이터의 크기를 비교해 정렬하는 방법이다. 간단하게 구현할 수 있지만 시간 복잡도는 O(n2)으로 다른 정렬 알고리즘보다 속도가 느린 편이다.
다음 그림과 같이 루프를 돌면서 인접한 데이터 간의 swap 연산으로 정렬한다.
만약 특정 루프 영역에서 swap이 한 번도 발생하지 않았다면 그 영역 뒤에 있는 데이터가 모두 정렬됬다는 뜻이므로 프로세스를 종료해도 된다.
- Do it! 알고리즘 코딩테스트 자바 편