MCPcopy Create free account
hub / github.com/Seogeurim/CS-study / merge

Method merge

contents/algorithm/code/MergeSort.java:5–36  ·  view source on GitHub ↗
(int[] arr, int start, int mid, int end)

Source from the content-addressed store, hash-verified

3public class MergeSort {
4
5 static void merge(int[] arr, int start, int mid, int end) {
6 int i = start; // 왼쪽 배열의 시작
7 int j = mid + 1; // 오른쪽 배열의 시작
8 int k = 0; // 병합된 배열의 시작
9
10 int[] temp = new int[end - start + 1];
11 System.out.println("size : " + (end - start + 1));
12 while (i <= mid && j <= end) {
13 if (arr[i] < arr[j]) {
14 temp[k++] = arr[i++];
15 } else {
16 temp[k++] = arr[j++];
17 }
18 }
19 // 남은 값 복사
20 if (i > mid) { // 왼쪽 배열 값 다 사용함 , 오른쪽 다 복사
21 for (int idx = j; idx <= end; idx++, k++) {
22 temp[k] = arr[idx];
23 }
24 } else { // 오른쪽 배열 값 다 사용함, 왼쪽 다 복사
25 for (int idx = i; idx <= mid; idx++, k++) {
26 temp[k] = arr[idx];
27 }
28 }
29 System.out.println(Arrays.toString(temp));
30
31 // 임시 배열 -> 원래 배열
32 for (int num : temp) {
33 arr[start++] = num;
34 }
35
36 }
37
38 static void mergeSort(int[] arr, int start, int end) {
39 if (start < end) {

Callers 1

mergeSortMethod · 0.95

Calls 1

toStringMethod · 0.45

Tested by

no test coverage detected