게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
자바 outofbound 배열 에러 좀 확인해주세요 ㅠㅠ
게시물ID : programmer_2219짧은주소 복사하기
작성자 : mo190
추천 : 0
조회수 : 343회
댓글수 : 5개
등록시간 : 2014/03/29 04:14:43

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
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);
}

}



전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호