Skip to content

Commit becd99a

Browse files
committed
Update
1 parent 8ad8e91 commit becd99a

File tree

4 files changed

+119
-0
lines changed

4 files changed

+119
-0
lines changed

6/1.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import java.util.*;
2+
3+
public class Main {
4+
5+
public static void main(String[] args) {
6+
7+
int n = 10;
8+
int[] arr = {7, 5, 9, 0, 3, 1, 6, 2, 4, 8};
9+
10+
for (int i = 0; i < n; i++) {
11+
int min_index = i; // 가장 작은 원소의 인덱스
12+
for (int j = i + 1; j < n; j++) {
13+
if (arr[min_index] > arr[j]) {
14+
min_index = j;
15+
}
16+
}
17+
// 스와프
18+
int temp = arr[i];
19+
arr[i] = arr[min_index];
20+
arr[min_index] = temp;
21+
}
22+
23+
for(int i = 0; i < n; i++) {
24+
System.out.print(arr[i] + " ");
25+
}
26+
}
27+
28+
}

6/2.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import java.util.*;
2+
3+
public class Main {
4+
5+
public static void main(String[] args) {
6+
7+
int[] arr = {3, 5};
8+
9+
// 스와프
10+
int temp = arr[0];
11+
arr[0] = arr[1];
12+
arr[1] = temp;
13+
14+
System.out.println(arr[0] + " " + arr[1]);
15+
}
16+
17+
}

6/3.java

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import java.util.*;
2+
3+
public class Main {
4+
5+
public static void main(String[] args) {
6+
7+
int n = 10;
8+
int[] arr = {7, 5, 9, 0, 3, 1, 6, 2, 4, 8};
9+
10+
for (int i = 1; i < n; i++) {
11+
// 인덱스 i부터 1까지 감소하며 반복하는 문법
12+
for (int j = i; j > 0; j--) {
13+
// 한 칸씩 왼쪽으로 이동
14+
if (arr[j] < arr[j - 1]) {
15+
// 스와프(Swap)
16+
int temp = arr[j];
17+
arr[j] = arr[j - 1];
18+
arr[j - 1] = temp;
19+
}
20+
// 자기보다 작은 데이터를 만나면 그 위치에서 멈춤
21+
else break;
22+
}
23+
}
24+
25+
for(int i = 0; i < n; i++) {
26+
System.out.print(arr[i] + " ");
27+
}
28+
}
29+
30+
}

6/4.java

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
import java.util.*;
2+
3+
public class Main {
4+
5+
public static void quickSort(int[] arr, int start, int end) {
6+
if (start >= end) return; // 원소가 1개인 경우 종료
7+
int pivot = start; // 피벗은 첫 번째 원소
8+
int left = start + 1;
9+
int right = end;
10+
while (left <= right) {
11+
// 피벗보다 큰 데이터를 찾을 때까지 반복
12+
while (left <= end && arr[left] <= arr[pivot]) left++;
13+
// 피벗보다 작은 데이터를 찾을 때까지 반복
14+
while (right > start && arr[right] >= arr[pivot]) right--;
15+
// 엇갈렸다면 작은 데이터와 피벗을 교체
16+
if (left > right) {
17+
int temp = arr[pivot];
18+
arr[pivot] = arr[right];
19+
arr[right] = temp;
20+
}
21+
// 엇갈리지 않았다면 작은 데이터와 큰 데이터를 교체
22+
else {
23+
int temp = arr[left];
24+
arr[left] = arr[right];
25+
arr[right] = temp;
26+
}
27+
}
28+
// 분할 이후 왼쪽 부분과 오른쪽 부분에서 각각 정렬 수행
29+
quickSort(arr, start, right - 1);
30+
quickSort(arr, right + 1, end);
31+
}
32+
33+
public static void main(String[] args) {
34+
int n = 10;
35+
int[] arr = {7, 5, 9, 0, 3, 1, 6, 2, 4, 8};
36+
37+
quickSort(arr, 0, n - 1);
38+
39+
for(int i = 0; i < n; i++) {
40+
System.out.print(arr[i] + " ");
41+
}
42+
}
43+
44+
}

0 commit comments

Comments
 (0)