1. ์ ๋ ฌ์๊ณ ๋ฆฌ์ฆ
์ ๋ ฌ
- ์์ ๋ ์ ๋ ฌ
- ํค๊ฐ์ด ๊ฐ์ ์์์ ์์๊ฐ ์ ๋ ฌ ์ ํ์๋ ์ ์ง๋๋ ๊ฒ
- ์์ ๋์ง ์์ ์ ๋ ฌ
- ํค๊ฐ์ด ๊ฐ์ ์์์ ์์๊ฐ ์ ๋ ฌ ์ ํ์๋ ์ ์ง๋์ง ์๋ ๊ฒ
- ๋ด๋ถ ์ ๋ ฌ
- ์ ๋ ฌํ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ํ๋์ ๋ฐฐ์ด์ ์ ์ฅํ ์ ์์ ๋์ ์ฌ์ฉํ๋ ์๊ณ ๋ฆฌ์ฆ
- ์ธ๋ถ ์ ๋ ฌ
- ์ ๋ ฌํ ๋ฐ์ดํฐ๊ฐ ๋๋ฌด ๋ง์์ ํ๋์ ๋ฐฐ์ด์ ์ ์ฅํ ์ ์์ ๋์ ์ฌ์ฉํ๋ ์๊ณ ๋ฆฌ์ฆ
- ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ํต์ฌ ์์
- ๊ตํ, ์ ํ, ์ฝ์
๋๋ถ๋ถ์ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ์ด 3๊ฐ์ง ์์๋ฅผ ์์ฉํ ๊ฒ
2. ๋ฒ๋ธ ์ ๋ ฌ
bubble sort
- ๋จ์ ๊ตํ ์ ๋ ฌ(straight exchange sort)
- ์ด์ํ ๋ ์์์ ๋์ ๊ด๊ณ๋ฅผ ๋น๊ตํ๊ณ ํ์์ ๋ฐ๋ผ ๊ตํ์ ๋ฐ๋ณตํ๋ ์๊ณ ๋ฆฌ์ฆ
๋ฒ๋ธ ์ ๋ ฌ ํ๋ก๊ทธ๋จ ๋ง๋ค๊ธฐ
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
// ๋ฒ๋ธ ์ ๋ ฌ(๋จ์ ๊ตํ ์ ๋ ฌ) (๋ฒ์ 1)
import java.util.Scanner;
class BubbleSort {
/*
๋ฒ๋ธ์ ๋ ฌ
*/
static void bubbleSort(int[] a, int n) {
// ์ซ์๋ n๊ฐ, ํจ์ค ํ์๋ n-1๋ฒ
// ์ฒซ ๋ฒ์งธ ํจ์ค์ ๋น๊ต ํ์๋ n - 1, ๋ ๋ฒ์งธ ํจ์ค์ ๋น๊ต ํ์๋ n - 2ํ ...
// a[i], a[i + 1], โฆ, a[n - 1]
for (int i = 0; i < n - 1; i++) // ์ธ๋ฑ์ค i ~ n-1๊น์ง ๋ฐ๋ณต
// ํจ์ค : ๋๊ฐ์ฉ ๋น๊ตํด ํ์ค ํต๊ณผํ ๋
for (int j = n - 1; j > i; j--) // ๋งจ๋ค ์ธ๋ฑ์ค n-1๋ถํฐ ์์ํด์ ์์ผ๋ก 2๊ฐ์ฉ ๋น๊ต
if (a[j - 1] > a[j])
swap(a, j - 1, j);
}
/*
๋ฐฐ์ด ์์ a[idx1]์ a[idx2]์ ๊ฐ ๊ตํ
*/
static void swap(int[] a, int idx1, int idx2) {
int t = a[idx1]; a[idx1] = a[idx2]; a[idx2] = t;
}
public static void main(String[] args) {
Scanner stdIn = new Scanner(System.in);
System.out.println("๋ฒ๋ธ ์ ๋ ฌ(๋ฒ์ 1)");
System.out.print("์์์: ");
int nx = stdIn.nextInt();
int[] x = new int[nx];
for (int i = 0; i < nx; i++) {
System.out.print("x[" + i + "]: ");
x[i] = stdIn.nextInt();
}
bubbleSort(x, nx); // ๋ฐฐ์ด x๋ฅผ ๋จ์๊ตํ์ ๋ ฌ
System.out.println("์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ์ต๋๋ค.");
for (int i = 0; i < nx; i++)
System.out.println("x[" + i + "]=" + x[i]);
}
}
์๊ณ ๋ฆฌ์ฆ ๊ฐ์ ํ๊ธฐ 1
์๊ณ ๋ฆฌ์ฆ ๊ฐ์ ํ๊ธฐ2
3. ๋จ์ ์ ํ ์ ๋ ฌ
4. ๋จ์ ์ฝ์ ์ ๋ ฌ
๋จ์ ์ ๋ ฌ์ ์๊ฐ ๋ณต์ก๋
5. ์ ธ ์ ๋ ฌ
๋จ์์ฝ์ ์ ๋ ฌ์ ํน์ง
์ ธ ์ ๋ ฌ
์ฆ๋ถ๊ฐ(h๊ฐ) ์ ํํ๊ธฐ
6. ํต ์ ๋ ฌ
ํต ์ ๋ ฌ ์ดํด๋ณด๊ธฐ
๋ฐฐ์ด์ ๋ ๊ทธ๋ฃน์ผ๋ก ๋๋๊ธฐ
ํต ์ ๋ ฌ ๊ตฌํํ๊ธฐ
ํต ์ ๋ ฌ์์ ๋ฐฐ์ด์ ๋๋๋ ๊ณผ์ ์ถ๋ ฅํ๊ธฐ
๋น์ฌ๊ท์ ์ธ ํต ์ ๋ ฌ ๊ตฌํํ๊ธฐ
์คํ์ ํฌ๊ธฐ ๊ตฌํ๊ธฐ
๋ฐฉ๋ฒ1. ์์์๊ฐ ๋ง์ ๊ทธ๋ฃน์ ๋จผ์ ํธ์ํ๋ ๊ฒฝ์ฐ
๋ฐฉ๋ฒ 2. ์์์๊ฐ ์ ์ ๊ทธ๋ฃน์ ๋จผ์ ํธ์ํ๋ ๊ฒฝ์ฐ
ํผ๋ฒ ์ ํํ๊ธฐ
ํต ์ ๋ ฌ์ ์๊ฐ ๋ณต์ก๋ ๊ตฌํ๊ธฐ
7. ๋ณํฉ ์ ๋ ฌ
7-1. ์ ๋ ฌ์ ๋ง์น ๋ ๋ฐฐ์ด์ ๋ณํฉ ์ดํด๋ณด๊ธฐ
7-2. ๋ณํฉ ์ ๋ ฌ ๊ตฌํํ๊ธฐ
๋ณํฉ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ
7-3. Arrays.sort๋ก ํต ์ ๋ ฌ๊ณผ ๋ณํฉ ์ ๋ ฌํ๊ธฐ
๊ธฐ๋ณธ ์๋ฃํ ๋ฐฐ์ด์ ์ ๋ ฌ(ํต ์ ๋ ฌ)
ํด๋์ค ๊ฐ์ฒด ๋ฐฐ์ด์ ์ ๋ ฌ(๋ณํฉ์ ๋ ฌ)
์์ฐ๊ทธ๋ฌ์ด ์์๋ฅผ ๊ฐ๊ณ ์์ง ์์ ๋ฐฐ์ด์ ์ ๋ ฌ ๋ง๋ค๊ธฐ
8. ํ ์ ๋ ฌ
8-1. ํ์ด๋?
ํธ๋ฆฌ
8-2. ํ ์ ๋ ฌ ์์๋ณด๊ธฐ
๋ฃจํธ๋ฅผ ์์ ๊ณ ํ ์ํ ์ ์งํ๊ธฐ
ํ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ ์ดํด๋ณด๊ธฐ
8-3. ๋ฐฐ์ด์ ํ์ผ๋ก ๋ง๋ค๊ธฐ
downHeap ๋ฉ์๋
heapSort ๋ฉ์๋
ํ ์ ๋ ฌ์ ์๊ฐ ๋ณต์ก๋
9. ๋์ ์ ๋ ฌ
9-1. ๋์์ ๋ ฌ ์์๋ณด๊ธฐ
1๋จ๊ณ: ๋์๋ถํฌํ ๋ง๋ค๊ธฐ
2๋จ๊ณ: ๋์ ๋ถํฌํ ๋ง๋ค๊ธฐ
3๋จ๊ณ: ๋ชฉํ๋ฐฐ์ด ๋ง๋ค๊ธฐ
4๋จ๊ณ: ๋ฐฐ์ด ๋ณต์ฌํ๊ธฐ
(์ฐธ๊ณ )
๊ณต๋ถํ ๋ด์ฉ์ ์ฌ๋ฌ๊ธ๊ณผ ์ฑ
์ฝ์ ๋ด์ฉ์ ๋ฐํ์ผ๋ก ์ ๋ฆฌํ๊ณ ์์ต๋๋ค.
์ข์ ๊ธ๋ก ์ ์ ๊ณต๋ถ์ ๋์์ ์ฃผ์๋ ๋ถ๋ค๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค.