버블정렬
- 정렬 방식이 마치 물속 거품이 수면으로 올라가는 듯하다고 하여 붙여진 이름
- 가장 단순하고 이해하기 쉬운 방식 중 하나이다
- 시간복잡도 : O(n^2)
정렬 방식
- 첫 번째 값과 두 번째 값 비교
- 첫 번째 값이 크면 서로 위치 교환. 아니면 그대로!
- 두 번째 값과 세 번째 값 비교하여 같은 작업 반복
- 끝 값까지 같은 작업을 반복하면, 가장 큰 값이 가장 끝 배열 요소로 들어감
- 같은 과정을 반복하면 오름차순 정렬이 완성
장단점
- 장점: 구현이 간단하고 코드가 직관적이다!
- 단점: 시간복잡도가 O(n^2)로, 배열 크기가 커지면 비효율적이다.
import java.util.Arrays;
public class BubbleSort {
public static void main(String[] args) {
int[] arr = {22, 42, 31, 10, 35};
// 버블 정렬
for (int i=0; i<arr.length; i++) {
for (int j=1; j<arr.length-i; j++) {
if (arr[j-1] > arr[j]) {
int tmp = arr[j-1];
arr[j-1] = arr[j];
arr[j] = tmp;
}
}
}
System.out.println(Arrays.toString(arr));
}
}