반응형
개념
- 현재 선택된 인자의 값과 옆의 인자의 값을 비교하여 작은 값을 앞으로 이동시켜 정렬하는 알고리즘.
- 한 번 수행마다 결과적으로 가장 큰 값이 가장 뒤로 이동.
- 선택 정렬과 시간복잡도가 같지만 실제 수행시간은 선택정렬보다 더 느림. (SWAP 발생 빈도 높음)
private void bubbleSort(int[] list, ParamMap paramMap) {
int i, j, temp;
for (i = 0; i < list.length; i++) {
// i를 빼주는 이유 : 한 번 수행 할 때마다 배열의 가장 마지막으로 이동되는 큰 값을 탐색 범위에서 제외하도록 하기 위함
for (j = 0; j < (list.length-1)-i; j++) {
if ( list[j] > list[j+1] ) {
temp = list[j];
list[j] = list[j+1];
list[j+1] = temp;
}
}
}
}
※ 시간복잡도는 O(n^2)
반응형
'Algorithm > 기본' 카테고리의 다른 글
계수 정렬(counting sort) (0) | 2021.05.04 |
---|---|
병합 정렬(merge sort) (0) | 2021.04.29 |
퀵 정렬(quick sort) (0) | 2021.04.28 |
삽입 정렬(insertion sort) (0) | 2021.04.26 |
선택 정렬(selection sort) (0) | 2021.04.25 |