반응형

개념

- 현재 선택된 인자의 값과 옆의 인자의 값을 비교하여 작은 값을 앞으로 이동시켜 정렬하는 알고리즘.

- 한 번 수행마다 결과적으로 가장 큰 값이 가장 뒤로 이동.

- 선택 정렬과 시간복잡도가 같지만 실제 수행시간은 선택정렬보다 더 느림. (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

+ Recent posts