ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
Func.java
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
package array;
import java.util.*;
public class Func
{
private static final int NULL = 0;
final int temp = 5;
void mergeSort(int[] arr, int low, int high)
{
if (low < high)
{
int middle = (low + high) / 2;
mergeSort(arr, low, middle); // recursively sort the left side of the array
mergeSort(arr, middle + 1, high); // recursively sort the right side of the array
merge(arr, low, middle, high); // merge the sorted arrays
}
}
void merge(int[] arr, int low, int middle, int high)
{
int i = low; // start of left array
int j = middle + 1; // start of right array
int k = low;
int l;
int temp=0;
int[] narr = new int[2*temp];
Arrays.fill(narr, NULL);
while (i <= middle && j <= high) // copy the smallest values from either the left or the right side back
{ // to the original array
if (arr[i] < arr[j])
narr[k++] = arr[i++]; //data array is new arranged array
else if(arr[i] > arr[j])
narr[k++] = arr[j++];
else
{
narr[k++] = arr[i++];
j++;
temp++;
}
}
if(i>middle)
{
for(l=j; l<=high; l++)
narr[k++]=arr[l];
}
else
{
for(l=i; l<=middle; l++)
narr[k++]=arr[l];
}
for(l=low; l<=high; l++)
arr[l]=narr[l];
}
}
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
Final.java -> main 있음
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
public class Final {
private static final int NULL = 0;
public static void main(String[] args) {
// TODO 자동 생성된 메소드 스텁
final int temp = 5;
Scanner sc = new Scanner(System.in);
Func mo = new Func();
int i,j;
char ch;
int[] arr1 = new int[temp];
int[] arr2 = new int[temp];
System.out.print("input the arr1\n");
for(i=0; i<temp; i++)
arr1[i] = sc.nextInt();
System.out.print("\n");
System.out.print("input the arr2\n");
for(i=0; i<temp; i++)
arr2[i] = sc.nextInt();
System.out.print("\n");
int[] arr3 =new int[2*temp];
Arrays.fill(arr3, NULL);
for (i = 0; i < arr3.length; ++i)
{
arr3[i] = i < arr1.length ? arr1[i] : arr2[i - arr1.length];
}
for(i=0; i<2*temp; i++)
System.out.print(" "+arr3[i]);
System.out.print("\n");
mo.mergeSort(arr3, 0, (2*temp)-1);