서로 인접한 두 원소를 검사하여 정렬하는 알고리즘
인접한 두 수를 비교하면서 크기가 클 수록 뒤로 이동하여 결국에는 가장 큰 숫자가 맨 뒤로 이동하게 된다.
정렬된 숫자를 제외하고 계속해서 비교해주면 된다.
예시)
5 6 3 1 8 // 5 6 비교
5 6 3 1 8 // 6 3 비교 , swap
5 3 6 1 8 // 6 1 비교, swap
5 3 1 6 8 // 6 8 비교
5 3 1 6 8 // 1회전 결과
5 3 1 6 8 // 5 3 비교, swap
3 5 1 6 8 // 5 1 비교, swap
3 1 5 6 8 // 5 6 비교
3 1 5 6 8 // 2회전 결과
3 1 5 6 8 // 3 1 비교, swap
1 3 5 6 8 // 3 5 비교
1 3 5 6 8 // 3회전 결과
1 3 5 6 8 // 1 3 비교
1 3 5 6 8 // 4회전 결과
import java.util.Arrays;
public class 버블정렬 {
public static void main(String[] args) {
int[] arr = {5,6,3,1,8};
for (int i = 0; i < arr.length; i++) {
for (int j = 1; j < arr.length-i; j++) {
if(arr[j-1] > arr[j]) {
int temp = arr[j-1];
arr[j-1] = arr[j];
arr[j] = temp;
}
}
System.out.println(Arrays.toString(arr));
}
}
}
'ALGORITHM > 이론' 카테고리의 다른 글
JAVA 2차원 시계방향으로 90도 돌리기 (0) | 2022.04.07 |
---|---|
[Java] 2차원 배열 정렬 (0) | 2021.06.30 |
Insertion sort. 삽입정렬 (0) | 2021.01.04 |
Selection sort. 선택정렬 (0) | 2021.01.04 |
HashMap(해시테이블) (0) | 2020.11.14 |