두 인접한 원소를 검사하여 정렬하는 방법이다.
시간 복잡도가 상당히 느리지만, 코드가 단순하기 때문에 자주 사용된다.
원소의 이동이 커품이 수면으로 올라오는 듯한 모습을 보이기 때문에 지어진 이름이다.
public class BubbleSort {
public static void main(String[] args) {
int[] nums = {1, 5, 3, 6, 2, 7, 4, 9, 0};
System.out.println(Arrays.toString(bubbleSort(nums)));
}
public static int[] bubbleSort(int[] nums) {
for (int i = 0; i < nums.length - 1; i++) {
for (int j = 1; j < nums.length - i; j++) {
// if (nums[j - 1] < num[j]) { 내림차순
if (nums[j - 1] > nums[j]) { // 오름차순
int temp = nums[j - 1];
nums[j - 1] = nums[j];
nums[j] = temp;
}
}
}
return nums;
}
}