๋ฒ๋ธ ์ ๋ ฌ (Bubble Sort)
ํต์ฌ ์์
โข
์ธ์ ํ ๋ ์์๋ฅผ ๋น๊ตํ์ฌ ๊ตํ
โข
ํ ๋ฒ์ ์ํ๋ง๋ค ๊ฐ์ฅ ํฐ ์์๊ฐ ๋งจ ๋ค๋ก ์ด๋
โข
n-1๋ฒ์ ์ํ๋ก ์ ์ฒด ์ ๋ ฌ ์๋ฃ
์๊ฐ ๋ณต์ก๋
์ต์ ์ ๊ฒฝ์ฐ | O(n) |
ํ๊ท ์ ๊ฒฝ์ฐ | O(nยฒ) |
์ต์
์ ๊ฒฝ์ฐ | O(nยฒ) |
์ฃผ์ ํน์ง
โข
๊ตฌํ์ด ๋งค์ฐ ๊ฐ๋จํจ
โข
์์ ์ ๋ ฌ(Stable Sort)
โข
์ ์๋ฆฌ ์ ๋ ฌ(In-place Sort)
โข
๋นํจ์จ์ ์ธ ์๊ฐ ๋ณต์ก๋๋ก ์ธํด ์ค๋ฌด์์๋ ์ ์ฌ์ฉ๋์ง ์์
์์ ์ฝ๋
์ง์ ๊ตฌํ
public class BubbleSort {
public static void bubbleSort(int[] arr) {
int n = arr.length;
boolean swapped;
for (int i = 0; i < n - 1; i++) {
swapped = false;
for (int j = 0; j < n - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
// Swap arr[j] and arr[j + 1]
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
swapped = true;
}
}
// ๋ง์ฝ ๊ตํ์ด ํ ๋ฒ๋ ์ผ์ด๋์ง ์์๋ค๋ฉด ์ด๋ฏธ ์ ๋ ฌ๋ ์ํ์ด๋ฏ๋ก ์ข
๋ฃ
if (!swapped) break;
}
}
public static void main(String[] args) {
int[] arr = { 5, 2, 9, 1, 5, 6 };
bubbleSort(arr);
for (int num : arr) {
System.out.print(num + " ");
}
}
}
Java
๋ณต์ฌ