์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- homogenous
- CentOS
- SQL
- Computer
- ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ
- ๋ช ๋ น์ด
- ์ปดํจํฐ๊ตฌ์กฐ
- homogeinous
- ๋ฆฌ๋ ์ค
- ํ์ ๋ณต์ก๋
- robotics
- sort
- ํฉ๋ณ
- ์ ๋ ฌ
- ๋งฅ์ผ์ด๋ธ
- Linux
- MIPS
- AI
- Java
- ๋คํธ์ํฌ ์ถฉ๋
- Coding
- ํด์ฑ ํจ์
- ์์ค ์ฝ๋ ํ์ง ๋ถ์
- 3dof
- ์๊ณ ๋ฆฌ์ฆ
- sam2
- ROS2
- segmentation
- ๊ธฐ๊ตฌํ
- ์ ์ฒ๊ธฐ
- Today
- Total
UTF-404
Quick Sort ๊ตฌํ(Java) ๋ณธ๋ฌธ
๐ก Quick Sort ๋?
โก๏ธ ํต ์ ๋ ฌ(Quicksort)์ ์ฐฐ์ค ์คํฐ๋ ๋ฆฌ์ฒ๋ ํธ์ด๊ฐ ๊ฐ๋ฐํ ๋ฒ์ฉ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
๋ค๋ฅธ ์์์์ ๋น๊ต๋ง์ผ๋ก ์ ๋ ฌ์ ์ํํ๋ ๋น๊ต ์ ๋ ฌ์ ์ํ๋ค.
ํต ์ ๋ ฌ์ n๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฌํ ๋, ์ต์ ์ ๊ฒฝ์ฐ์๋ O(n^2)๋ฒ์ ๋น๊ต๋ฅผ ์ํํ๊ณ , ํ๊ท ์ ์ผ๋ก O(n log n)๋ฒ์ ๋น๊ต๋ฅผ ์ํํ๋ค.
๋ถ๋ฅ | ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ |
์๋ฃ ๊ตฌ์กฐ | ๋ฐฐ์ด |
์ต์ ์๊ฐ๋ณต์ก๋ | O(n^2) |
์ต์ ์๊ฐ๋ณต์ก๋ | O(n log n) |
ํ๊ท ์๊ฐ๋ณต์ก๋ | O(n log n) |
<์ฐธ๊ณ >
https://ko.wikipedia.org/wiki/%ED%80%B5_%EC%A0%95%EB%A0%AC
ํต ์ ๋ ฌ - ์ํค๋ฐฑ๊ณผ, ์ฐ๋ฆฌ ๋ชจ๋์ ๋ฐฑ๊ณผ์ฌ์
์ํค๋ฐฑ๊ณผ, ์ฐ๋ฆฌ ๋ชจ๋์ ๋ฐฑ๊ณผ์ฌ์ . ํต ์ ๋ ฌ(Quicksort)์ ์ฐฐ์ค ์คํฐ๋ ๋ฆฌ์ฒ๋ ํธ์ด๊ฐ ๊ฐ๋ฐํ ๋ฒ์ฉ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ๋ค๋ฅธ ์์์์ ๋น๊ต๋ง์ผ๋ก ์ ๋ ฌ์ ์ํํ๋ ๋น๊ต ์ ๋ ฌ์ ์ํ๋ค. ํต ์ ๋ ฌ์ n๊ฐ
ko.wikipedia.org
๐ก Quick Sort ๊ตฌํ - Java Code
import java.util.*;
public class Quick_Sort {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int arr[] = new int[n];
for(int i=0; i<n; i++) {
arr[i] = sc.nextInt();
}
quick1(arr);
print(arr);
sc.close();
}
public static void quick1(int[] arr) {
quick2(arr, 0, arr.length - 1);
}
private static void quick2(int[] arr, int left, int right) {
if (left >= right)
return;
int pivot = left;
int lo = left + 1;
int hi = right;
while (lo <= hi) {
while (lo <= right && arr[lo] <= arr[pivot])
lo++;
while (hi > left && arr[hi] >= arr[pivot])
hi--;
if (lo > hi)
swap(arr, hi, pivot);
else
swap(arr, lo, hi);
}
quick2(arr, left, hi - 1);
quick2(arr, hi + 1, right);
}
private static void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
public static void print(int[] a) {
for (int i=0;i<a.length;i++)
System.out.print(a[i]+" ");
System.out.println();
}
}
๐ Test Case ์ถ๋ ฅ ํ์ธ
'ํ๋ก์ ํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ฅ๏ธ ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด๋ฅผ ํ์ฉํ ๋คํธ์ํฌ AI ์ฒด์ค ๊ฒ์ (0) | 2024.06.18 |
---|---|
Merge Sort ๊ตฌํ(Java) (0) | 2024.03.01 |
Prime Number ์๊ณ ๋ฆฌ์ฆ (0) | 2024.03.01 |
"์ฐ๋ค" ํจ ๋๋ ์ฃผ๊ธฐ ํ๋ก๊ทธ๋จ (0) | 2024.03.01 |
๐ฅ๏ธ DB-Project (0) | 2024.02.27 |