728x90
728x90
๋ณต์ก๋
1. ์๊ฐ ๋ณต์ก๋
- ์๊ณ ๋ฆฌ์ฆ์ด ์คํ๋๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ํ์ ์ ๋ ฅ ํฌ๊ธฐ(n)์ ๋ฐ๋ผ ํํํ ๊ฒ
- ๋น
์ค ํ๊ธฐ๋ฒ(O)์ผ๋ก ๋ํ๋
- O(1) : ์ ๋ ฅ ํฌ๊ธฐ์ ๋ฌด๊ดํ๊ฒ ์ผ์ ํ ์๊ฐ์ด ๊ฑธ๋ฆผ (์์ ์๊ฐ)
- O(log n) : ์ ๋ ฅ ํฌ๊ธฐ๊ฐ ์ฆ๊ฐํด๋ ์ํ ์๊ฐ์ด ์ฒ์ฒํ ์ฆ๊ฐ (๋ก๊ทธ ์๊ฐ)
- O(n) : ์ ๋ ฅ ํฌ๊ธฐ์ ๋น๋กํด ์ํ ์๊ฐ์ด ์ฆ๊ฐ (์ ํ ์๊ฐ)
- O(n^2) : ์ด์ค ๋ฐ๋ณต๋ฌธ ๋ฑ์์ ๋ํ๋๋ ์๊ฐ (์ ๊ณฑ ์๊ฐ)
- O(2^n) : ์ฌ๊ท ํธ์ถ ๋ฑ์ด ๋ง์ ๊ฒฝ์ฐ ๋ฐ์ (์ง์ ์๊ฐ)
2. ๊ณต๊ฐ ๋ณต์ก๋
- ์๊ณ ๋ฆฌ์ฆ์ด ์คํ๋ ๋ ์ฌ์ฉ๋๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์์ ์
๋ ฅ ํฌ๊ธฐ(n)์ ๋ฐ๋ผ ํํํ ๊ฒ
- ๊ณ ์ ๊ณต๊ฐ : ์๊ณ ๋ฆฌ์ฆ์์ ์ฌ์ฉํ๋ ์์ ํฌ๊ธฐ์ ๋ฉ๋ชจ๋ฆฌ
- ๊ฐ๋ณ ๊ณต๊ฐ : ์ ๋ ฅ ํฌ๊ธฐ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ ๋ฉ๋ชจ๋ฆฌ
์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ
์์๋ค์ ์ผ์ ํ ์์๋๋ก ๋์ดํ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก, ์ฃผ์ด์ง ์ํฉ๊ณผ ๊ธฐ์ค์ ๋ฐ๋ผ ์๊ณ ๋ฆฌ์ฆ์ ์ ์ ํด์ ์ฌ์ฉํ๋ค.
์๊ณ ๋ฆฌ์ฆ | ํ๊ท ์๊ฐ๋ณต์ก๋ | ์ต์ ์๊ฐ๋ณต์ก๋ | ๊ณต๊ฐ๋ณต์ก๋ | ํน์ง |
๋ฒ๋ธ ์ ๋ ฌ | O(n^2) | O(n^2) | O(1) | ๋จ์, ๋งค์ฐ ๋นํจ์จ์ |
์ ํ ์ ๋ ฌ | O(n^2) | O(n^2) | O(1) | ๋จ์, ๋นํจ์จ์ |
์ฝ์ ์ ๋ ฌ | O(n^2) | O(n^2) | O(1) | ๊ฑฐ์ ์ ๋ ฌ๋ ๋ฐ์ดํฐ์ ์ ํฉ |
์ ์ ๋ ฌ | O(n log n) | O(n^1.5) | O(n^2) | ์ฝ์ ์ ๋ ฌ ๊ฐ์ , ๋๋ ๋ฐ์ดํฐ์์ ๋นํจ์จ์ |
๋ณํฉ ์ ๋ ฌ | O(n log n) | O(n log n) | O(n) | ์์ ์ ๋ ฌ, ๋๋ ๋ฐ์ดํฐ ์ ๋ ฌ์ ์ ํฉ |
ํต ์ ๋ ฌ | O(n log n) | O(n^2) | O(log n) | ํ๊ท ์ ์ผ๋ก ๋น ๋ฆ, ๋ถ์์ ์ ๋ ฌ |
ํ ์ ๋ ฌ | O(n log n) | O(n log n) | O(1) | ์ต์ ์ ๊ฒฝ์ฐ์๋ ํจ์จ์ |
๊ณ์ ์ ๋ ฌ | O(n + k) | O(N + k) | O(n + k) | ํน์ ๋ฒ์์ ์ ์ ์ ๋ ฌ์ ์ ํฉ |
๊ธฐ์ ์ ๋ ฌ | O(n * d) | O(n * d) | O(n + k) | ๋ฒ์๊ฐ ํฐ ์ ์๋ ๋ฌธ์์ด์ ์ ํฉ |
- ์ ๋ ฌ์์๋ ์์์ ์์๋ฅผ ๋ง์ด ๋ฐ๊พธ๊ธฐ ๋๋ฌธ์ swap() ํจ์๋ฅผ ๊ตฌํํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์
public static void swap(int[] arr, int idx1, int idx2) {
int tmp = arr[idx1];
arr[idx1] = arr[idx2];
arr[idx2] = tmp;
}
1. ๋ฒ๋ธ ์ ๋ ฌ (Bubble Sort)
- ์ธ์ ํ ๋ ์์๋ฅผ ๋น๊ตํ๋ฉฐ ์ ๋ ฌ
- ์๊ฐ๋ณต์ก๋ : ์ด๋ฏธ ์ ๋ ฌ๋ ๊ฒฝ์ฐ O(n), ํ๊ท /์ต์ O(n^2)
public class BubbleSort {
public static void bubbleSort(int[] arr) {
int n = arr.length;
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
// Swap
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
public static void main(String[] args) {
int[] arr = {5, 3, 8, 6, 2};
bubbleSort(arr);
System.out.println(Arrays.toString(arr));
}
}
2. ์ ํ ์ ๋ ฌ (Selection Sort)
- ๊ฐ์ฅ ์์ ๊ฐ์ ์ฐพ์ ์ ๋ ฌ๋ ๋ถ๋ถ์ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ
- ๋งจ ์ ์ธ๋ฑ์ค๋ถํฐ ์ฐจ๋ก๋๋ก ๊ทธ ์๋ฆฌ์ ๋ค์ด๊ฐ ์์๋ฅผ ์ ํํ์ฌ ์ ๋ ฌํ๋ ์๊ณ ๋ฆฌ์ฆ
- ์๊ฐ๋ณต์ก๋ : ํ๊ท /์ต์
O(n^2) ๊ตํ ํ์๊ฐ O(n)์ผ๋ก ์ ์ด ๋ฒ๋ธ ์ ๋ ฌ๋ณด๋ค๋ ์ฑ๋ฅ์ด ์ข์
- ์ธ๋ฑ์ค 0๋ถํฐ ์์ํ์ฌ ๊ฐ์ฅ ์์ ๊ฐ์ ์ฐพ์ ํด๋น ์ธ๋ฑ์ค์ swap, ๋ง์ง๋ง ์ธ๋ฑ์ค๊น์ง ๋ฐ๋ณต
public class SelectionSort {
public static void selectionSort(int[] arr) {
int n = arr.length;
for (int i = 0; i < n - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < n; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
// Swap
int temp = arr[minIndex];
arr[minIndex] = arr[i];
arr[i] = temp;
}
}
public static void main(String[] args) {
int[] arr = {5, 3, 8, 6, 2};
selectionSort(arr);
System.out.println(Arrays.toString(arr));
}
}
3. ์ฝ์ ์ ๋ ฌ (Insertion Sort)
- ์๋ก์ด ์์๋ฅผ ์ด๋ฏธ ์ ๋ ฌ๋ ๋ถ๋ถ์ ์ฝ์ ํ๋ ๋ฐฉ๋ฒ
- ์ธ๋ฑ์ค 1์ ์์๋ถํฐ ์ ๋ฐฉํฅ์ผ๋ก ๋ค์ด๊ฐ ์์น๋ฅผ ์ฐพ์ ๊ตํํ๋ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ
- ์๊ฐ๋ณต์ก๋ : ๊ฑฐ์ ์ ๋ ฌ๋ ๊ฒฝ์ฐ O(n), ํ๊ท /์ต์
O(n^2) ์ ๋ ฌ๋์ด ์์ ์๋ก ์ฑ๋ฅ์ด ์ข์
- ์ธ๋ฑ์ค 1๋ฒ๋ถํฐ์ ์์๋ค์ ์์ฐจ์ ์ผ๋ก ์์ ์ด ๋ค์ด๊ฐ ์์น์ ๋ฃ๊ธฐ
public class InsertionSort {
public static void insertionSort(int[] arr) {
int n = arr.length;
for (int i = 1; i < n; i++) {
int key = arr[i];
int j = i - 1;
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = key;
}
}
public static void main(String[] args) {
int[] arr = {5, 3, 8, 6, 2};
insertionSort(arr);
System.out.println(Arrays.toString(arr));
}
}
4. ์ ์ ๋ ฌ (Shell Sort)
- ์ฝ์ ์ ๋ ฌ์ ๋จ์ (n-1๋ฒ์งธ ์ธ๋ฑ์ค๊ฐ ๊ฐ์ฅ ์์ ์์๋ผ๋ฉด ๋ง์ swap์ด ํ์)์ ๋ณด์ํ ์๊ณ ๋ฆฌ์ฆ
- ๋ฐฐ์ด์ ์ผ์ ๊ฐ๊ฒฉ์ ๋ฐ๋ผ ๋ถ๋ถ ๋ฐฐ์ด๋ก ๋๋์ด ์ ๋ ฌํ๊ณ , ๋ค์ ๊ฐ๊ฒฉ์ ์ค์ฌ ์ ๋ ฌํ๋ ๊ฒ์ ๋ฐ๋ณต
- ์ด๊ธฐ ๋จ๊ณ์์ ๋ฐ์ดํฐ๋ฅผ ์ผ๋ถ ์ ๋ ฌ๋ ์ํ๋ก ๋ง๋ค์ด ์ฝ์ ์ ๋ ฌ์ ์ฑ๋ฅ์ ํฅ์์ํค๋ ๊ฒ
- ๊ฐ๊ฒฉ์ ์ด ๋ฐ์ดํฐ๋ฅผ 2๋ก ๋๋ ๊ฐ์์ ์์ํด ๊ฐ๊ฒฉ์ 2๋ก ๋๋๋ค ์ต์ข ์ ์ผ๋ก 1์ด ๋๋๋ก ์กฐ์ ํจ
- ์๊ฐ๋ณต์ก๋ : ๊ฐ๊ฒฉ ๊ฐ์ ๋ฐฉ์์ ๋ฐ๋ผ ์ต์ ์์ O(n log n), ํ๊ท O(n^1.5), ์ต์ O(n^2)
import java.util.Arrays;
public class ShellSort {
public static void shellSort(int[] arr) {
int n = arr.length;
// ์ด๊ธฐ ๊ฐ๊ฒฉ์ ๋ฐฐ์ด ๊ธธ์ด์ ์ ๋ฐ
for (int gap = n / 2; gap > 0; gap /= 2) {
// ๊ฐ๊ฒฉ๋ณ ์ฝ์
์ ๋ ฌ ์ํ
for (int i = gap; i < n; i++) {
int temp = arr[i];
int j = i;
// ๊ฐ๊ฒฉ(gap) ๋จ์๋ก ๋น๊ตํ์ฌ ์ ๋ ฌ
while (j >= gap && arr[j - gap] > temp) {
arr[j] = arr[j - gap];
j -= gap;
}
arr[j] = temp;
}
}
}
public static void main(String[] args) {
int[] arr = {9, 8, 3, 7, 5, 6, 4, 1};
shellSort(arr);
System.out.println("Sorted array: " + Arrays.toString(arr));
}
}
๋๋ณด๊ธฐ
Knuth์ ๊ฐ๊ฒฉ ์์ด ์ฌ์ฉ ๋ฐฉ์
- Knuth ๊ฐ๊ฒฉ ์์ด์ gap = gap * 3 + 1 ๋ฐฉ์์ผ๋ก ๊ณ์ฐ๋๋ฉฐ, ๊ฐ๊ฒฉ ๊ฐ์ ๋ฐฉ์์ด ๋ ์ธ๋ฐํจ
import java.util.Arrays;
public class ShellSortKnuth {
public static void shellSort(int[] arr) {
int n = arr.length;
// Knuth ๊ฐ๊ฒฉ ์์ด ์์ฑ
int gap = 1;
while (gap < n / 3) {
gap = gap * 3 + 1;
}
// ๊ฐ๊ฒฉ(gap) ๊ฐ์ํ๋ฉฐ ์ ๋ ฌ
while (gap > 0) {
for (int i = gap; i < n; i++) {
int temp = arr[i];
int j = i;
while (j >= gap && arr[j - gap] > temp) {
arr[j] = arr[j - gap];
j -= gap;
}
arr[j] = temp;
}
gap /= 3; // Knuth ์์ด ๊ฐ์
}
}
public static void main(String[] args) {
int[] arr = {9, 8, 3, 7, 5, 6, 4, 1};
shellSort(arr);
System.out.println("Sorted array: " + Arrays.toString(arr));
}
}
5. ๋ณํฉ ์ ๋ ฌ (Merge Sort)
- ๋ฐฐ์ด์ ์ฌ๊ท์ ์ผ๋ก ๋๋๊ณ ๋ณํฉํ๋ฉด์ ์ ๋ ฌํ๋ ๋ถํ ์ ๋ณต ์๊ณ ๋ฆฌ์ฆ
- ๋ฐฐ์ด์ ๊ธธ์ด๊ฐ 1์ด ๋ ๋๊น์ง 2๊ฐ์ ๋ถ๋ถ ๋ฐฐ์ด๋ก ๋ถํ → ๋ถํ ์๋ฃ ์ ๋ค์ 2๊ฐ์ ๋ถ๋ถ ๋ฐฐ์ด์ ํฉ๋ณํ๊ณ ์ ๋ ฌ
→ ๋ชจ๋ ๋ถ๋ถ ๋ฐฐ์ด์ด ํฉ๋ณ๋ ๋๊น์ง ๋ฐ๋ณต
- ๋ฐฐ์ด์ ๊ธธ์ด๊ฐ 1์ด ๋ ๋๊น์ง 2๊ฐ์ ๋ถ๋ถ ๋ฐฐ์ด๋ก ๋ถํ → ๋ถํ ์๋ฃ ์ ๋ค์ 2๊ฐ์ ๋ถ๋ถ ๋ฐฐ์ด์ ํฉ๋ณํ๊ณ ์ ๋ ฌ
- ์๊ฐ ๋ณต์ก๋ : ํญ์ O(n log n)์ผ๋ก ๋น ๋ฅด์ง๋ง, ์ ์๋ฆฌ ์ ๋ ฌ๋ณด๋ค O(n)๋งํผ์ ์ถ๊ฐ์ ์ธ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉ
- ์ฐ์ธก ๋ถ๋ถ๋ฐฐ์ด์ด ๋ค ๋ค์ด๊ฐ๊ณ ์ข์ธก ๋ถ๋ถ๋ฐฐ์ด๋ง ๋จ์ ๊ฒฝ์ฐ : ์ข์ธก ๋ถ๋ถ ๋ฐฐ์ด๋ง ๋ฃ์ผ๋ฉด ๋จ
- ์ข์ธก ๋ถ๋ถ๋ฐฐ์ด์ด ๋ค ๋ค์ด๊ฐ๊ณ ์ฐ์ธก ๋ถ๋ถ๋ฐฐ์ด๋ง ๋จ์ ๊ฒฝ์ฐ : ์ด๋ฏธ ๋ฐฐ์ด์ด ๋ค ์ ๋ ฌ๋ ๊ฒ
- System.arraycopy() : for๋ฌธ์ ์ฌ์ฉํ์ฌ ๋ฐฐ์ด์ ์๋์ผ๋ก ๋ณต์ฌํ๋ ๊ฒ๋ณด๋ค ๋ ๋น ๋ฆ
- ๋ค์ดํฐ๋ธ ์ฝ๋ : OS์ ํ๋์จ์ด์์ ์ง์ ์คํ๋๋ ๋ฐ์ด๋๋ฆฌ ์ฝ๋๋ก, Java์ JNI(Java Native Inferface; ๋ค์ดํฐ๋ธ ์ฝ๋์ Java ์ฝ๋ ๊ฐ ์ธํฐํ์ด์ค ์ญํ )๋ฅผ ํตํด ์คํ๋จ. Java๋ JVM ์์์ ์คํ๋์ด ๋๋ถ๋ถ์ ๊ธฐ๋ฅ์ด ํ๋ซํผ ๋ ๋ฆฝ์ ์ด์ง๋ง arraycopy()์ ๊ฐ์ ์ผ๋ถ ํจ์๋ ํ๋ซํผ์ ์ต์ ํ๋ ๋ค์ดํฐ๋ธ ์ฝ๋๋ก ๊ตฌ์ฑ๋์ด ์์ด ์ฑ๋ฅ์ด ์ค์ํ ์์ ์์ ์ฌ์ฉํ๊ธฐ ์ข์
- System.arraycopy(์๋ณธ ๋ฐฐ์ด, ์๋ณธ ์์ ์ธ๋ฑ์ค, ๋์ ๋ฐฐ์ด, ๋์ ์์ ์ธ๋ฑ์ค, ์ธ๋ฑ์ค ๊ฐ์)
public class MergeSort {
public static void mergeSort(int[] arr, int left, int right) { // ์ฌ๊ท(๋ถํ )
if (left < right) { // ์์๊ณผ ๋ ์ธ๋ฑ์ค
int mid = (left + right) / 2; // ๋ฐฐ์ด์ ๋ฐ์ผ๋ก ๋ถํ ํ๊ธฐ ์ํด ์ค๊ฐ ์ธ๋ฑ์ค ๊ตฌํ๊ธฐ
mergeSort(arr, left, mid); // ์ผ์ชฝ ๋ ~ ์ค๊ฐ ๋ฐฐ์ด
mergeSort(arr, mid + 1, right); // ์ค๊ฐ ~ ์ค๋ฅธ์ชฝ ๋ ๋ฐฐ์ด
merge(arr, left, mid, right); // ๋ถํ -์ ๋ ฌ ๊ฒฐ๊ณผ๋ฅผ ๋ค์ ๋ณํฉ
}
}
private static void merge(int[] arr, int left, int mid, int right) { // ํฉ๋ณ
// ๋ ๋ถ๋ถ ๋ฐฐ์ด์ ์ธ๋ฑ์ค๋ฅผ ๋น๊ตํ๋ฉฐ ์ ๋ ฌ
int[] temp = new int[right - left + 1]; // ์์ ๋ฐฐ์ด
int i = left, j = mid + 1, k = 0;
while (i <= mid && j <= right) {
if (arr[i] <= arr[j]) {
temp[k++] = arr[i++];
} else {
temp[k++] = arr[j++];
}
}
while (i <= mid) temp[k++] = arr[i++];
while (j <= right) temp[k++] = arr[j++];
System.arraycopy(temp, 0, arr, left, temp.length);
}
public static void main(String[] args) {
int[] arr = {5, 3, 8, 6, 2};
mergeSort(arr, 0, arr.length - 1); // ์ ๋ ฌํ ๋ฐฐ์ด, ์์๊ณผ ๋ ์ธ๋ฑ์ค๋ฅผ ๋๊ฒจ์ค
System.out.println(Arrays.toString(arr)); // ๋ฐฐ์ด ์ถ๋ ฅ. Arrays.toString ๋ฏธ์ฌ์ฉ์ ๋ฐฐ์ด ๊ฐ์ฒด์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ํด์์ฝ๋ ํํ๋ก ์ถ๋ ฅํจ
}
}
6. ํต ์ ๋ ฌ (Quick Sort)
- ํผ๋ฒ(pivot)์ ๊ธฐ์ค์ผ๋ก ๋ฐฐ์ด์ ๋ถํ ํ๋ฉฐ ์ ๋ ฌํ๋ ๋ถํ ์ ๋ณต ์๊ณ ๋ฆฌ์ฆ
- ๋ณํฉ ์ ๋ ฌ์ ์ผ์ ํ ๋ถ๋ถ ๋ฆฌ์คํธ๋ก ๋ถํ ํ์ง๋ง, ํต ์ ๋ ฌ์ ํผ๋ฒ์ด ๋ค์ด๊ฐ๋ ์์น์ ๋ฐ๋ผ ๋ถ๊ท ํํ๊ฒ ๋ถํ ๋จ
- ํผ๋ฒ๋ณด๋ค ์์ ์์๋ ์ผ์ชฝ, ํผ๋ฒ๋ณด๋ค ํฐ ์์๋ ์ค๋ฅธ์ชฝ / ์ฌ๊ท์ ์ผ๋ก ์ผ์ชฝ, ์ค๋ฅธ์ชฝ ๋ถ๋ถ ๋ฐฐ์ด์ ๋ํด ํต ์ ๋ ฌ ์ํ
- ํฉ๋ณ ์ ๋ ฌ๊ณผ ์๋๊ฐ ๋น์ทํ๊ณ ํ ์ ๋ ฌ๋ณด๋ค ๋น ๋ฅด์ง๋ง ์ต์ ์ ๊ฒฝ์ฐ(ํผ๋ฒ์ ์ต์๊ฐ์ด๋ ์ต๋๊ฐ์ผ๋ก ์ ํํ์ฌ ๋ถ๋ถ ๋ฐฐ์ด์ด ํ์ชฝ์ผ๋ก ์ ๋ฆฌ๋ ๊ฒฝ์ฐ) O(n^2)๋งํผ ๊ฑธ๋ฆฌ๊ณ , ์ฌ๊ท๋ก ๊ตฌํํ์ฌ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ง์ด ์ฌ์ฉํ ์ ์๋ค๋ ๋จ์ ์ด ์กด์ฌํ๋ค.
- ์๊ฐ ๋ณต์ก๋ : ์ต์ /ํ๊ท O(n log n), ์ต์ O(n^2)
import java.util.Arrays;
public class QuickSort {
// ํต ์ ๋ ฌ ๋ฉ์๋
public static void quickSort(int[] arr, int low, int high) {
if (low < high) {
// ๋ถํ ๊ธฐ์ค ์ธ๋ฑ์ค ์ฐพ๊ธฐ
int pivotIndex = partition(arr, low, high);
// ์ผ์ชฝ ๋ถ๋ถ ๋ฐฐ์ด ์ ๋ ฌ
quickSort(arr, low, pivotIndex - 1);
// ์ค๋ฅธ์ชฝ ๋ถ๋ถ ๋ฐฐ์ด ์ ๋ ฌ
quickSort(arr, pivotIndex + 1, high);
}
}
// ๋ถํ ๋ฉ์๋ (Lomuto ๋ถํ ๋ฐฉ์)
private static int partition(int[] arr, int low, int high) {
int pivot = arr[high]; // ํผ๋ฒ: ๋ง์ง๋ง ์์ ์ ํ
int i = low - 1; // ์์ ์์์ ๋ ์์น
for (int j = low; j < high; j++) {
if (arr[j] < pivot) { // ํผ๋ฒ๋ณด๋ค ์์ ๊ฒฝ์ฐ
i++;
swap(arr, i, j);
}
}
// ํผ๋ฒ์ ์ฌ๋ฐ๋ฅธ ์์น๋ก ์ด๋
swap(arr, i + 1, high);
return i + 1; // ํผ๋ฒ์ ์ต์ข
์์น ๋ฐํ
}
// ๋ฐฐ์ด์ ๋ ์์๋ฅผ ๊ตํํ๋ ๋ฉ์๋
private static void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
// ๋ฉ์ธ ๋ฉ์๋
public static void main(String[] args) {
int[] arr = {10, 7, 8, 9, 1, 5};
System.out.println("Original array: " + Arrays.toString(arr));
quickSort(arr, 0, arr.length - 1);
System.out.println("Sorted array: " + Arrays.toString(arr));
}
}
728x90
320x100
'๐ป Language > Java : ์๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] JDK ์ค์น (Windows 10, JDK 17) (0) | 2025.03.12 |
---|---|
[Java] ๋ฐฑ์ค ์จ๋ผ์ธ ์ ์ง ๋จ๊ณ๋ณ๋ก ํ์ด๋ณด๊ธฐ - ์ ์ถ๋ ฅ๊ณผ ์ฌ์น์ฐ์ฐ (0) | 2024.11.20 |
[Java] ์ฝ๋ฉ ํ ์คํธ๋ฅผ ์ํ Java ์ ์ถ๋ ฅ ํจ์ (0) | 2024.11.15 |
[Java] ์๋ฃ๊ตฌ์กฐ - ๋ฐฐ์ด, ์ฐ๊ฒฐ๋ฆฌ์คํธ, ์คํ, ํ, ํ, ํธ๋ฆฌ, ๊ทธ๋ํ, ํด์ (0) | 2024.11.12 |
[Java] ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ(OOP)์ด๋? (0) | 2023.08.04 |