Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private void merge(int i, int middle, int f){
- int[] temp1 = new int[middle-i+1];
- int[] temp2 = new int[f-middle];
- for(int h = middle; h >= i; h--)
- temp1[h-i] = mergeArray[h];
- for(int h = f; h > middle; h--)
- temp2[h-middle-1] = mergeArray[h];
- int a, b, k;
- for(k = i, a = 0, b = 0; (k < f) && (a <= middle-i) && (b < f-middle); k++){
- if(temp1[a] < temp2[b]){
- mergeArray[k] = temp1[a];
- a++;
- }else{
- mergeArray[k] = temp2[b];
- b++;
- }
- }
- while(a <= middle-i){
- mergeArray[k] = temp1[a];
- a++;
- k++;
- }
- while(b < f-middle){
- mergeArray[k] = temp2[b];
- b++;
- k++;
- }
- }
- private void mergeSort(int i, int j){
- if(i < j){
- int middle = (i+j)/2;
- this.mergeSort(i, middle);
- this.mergeSort(middle + 1, j);
- this.merge(i, middle, j);
- }
- }
- public void mergeSort(){
- this.mergeSort(0, mergeArray.length - 1);
- }
Add Comment
Please, Sign In to add comment