데이터의 인접 요소끼리 비교하고, swap 연산을 수행하며 정렬하는 방법입니다.
시간 복잡도는 O(n²)으로 다른 정렬 알고리즘 보다 속도가 느린 편입니다.
정렬 과정
- 비교 연산이 필요한 루프 범위를 설정
- 인접한 데이터 값을 비교
- swap 조건에 부합하면 swap
- 루프 범위가 끝날 때까지 2~3번 반복
- 정렬 영역을 설정. 다음 루프에서는 이미 정렬된 영역을 제외
- 비교대상이 없을 때까지 1~5를 반복
소스 코드
void bubbleSort(int[] arr) {
int temp = 0;
for(int i = 0; i < arr.length - 1; i++) {
for(int j= 1 ; j < arr.length-i; j++) {
if(arr[j]<arr[j-1]) {
temp = arr[j-1];
arr[j-1] = arr[j];
arr[j] = temp;
}
}
}
System.out.println(Arrays.toString(arr));
}
'Algorithm > 이론' 카테고리의 다른 글
삽입 정렬 (Insertion Sort) - JAVA (0) | 2023.05.17 |
---|---|
선택 정렬 (Selection Sort) - JAVA (0) | 2023.05.17 |
스택(Stack)과 큐(Queue) (0) | 2023.05.17 |
구간 합 (0) | 2023.05.16 |
배열(Array)과 리스트(List) (0) | 2023.05.16 |