- #1
zak100
- 462
- 11
Hi,
I am trying to implement merge Sort Alg in Java. I am not getting any error but its not printing sorted list . can some body please guide me? My code is:
My initial list is: {2, 4, 5, 7, 1, 3, 6, 8};
But after sorting i am getting: 2, 3, 4, 5, 6, 7, 1, 8
Zulfi.
I am trying to implement merge Sort Alg in Java. I am not getting any error but its not printing sorted list . can some body please guide me? My code is:
Java:
import javax.swing.*;
public class MergeAlg2{
static int[ ] arr={2, 4, 5, 7, 1, 3, 6, 8};
int [ ] L;
int [ ] R;
void merge(int [ ] arr, int p, int q, int r){
int n1 = q- p +1;
int n2 = r-q;
L = new int[n1+1];
R = new int[n2+1];
int i=0;
int j=0;
for( i=0; i< n1; ++i)
L[I] = arr[p +i -1];
for(j=0; j<n2; ++j)
R[j] = arr[q+j];
L[n1] =100000;
R[n2]= 100000;
i=0;
j=0;
int k=0;
for(k=p-1; k<r; ++k){
if(L[ i ] <= R[j]){
arr[k] = L[ i ];
i++;
}
else{
arr[k] = R[j];
j++;
}
}
}
void merge_sort(int[ ] a, int left, int right){
int i=0;
String str="";
if(left <right) {
JOptionPane.showMessageDialog(null," Enters left = " + left + "right= " + right );
int center = (left + right)/2;
merge_sort(a, left, center);
merge_sort(a, center + 1, right);
merge(a, left, center, right);
}
for(i=0; i<=7; ++i){
str= str + a[ i ];
}
JOptionPane.showMessageDialog(null, "Sorted List is" + str);
}
public static void main(String[ ] args){
MergeAlg2 obj = new MergeAlg2();
obj.merge_sort(arr, 1,8);
int i=0;
String str="";
for(i=0; i<=7; ++i){
str= str + arr[ i ];
}
JOptionPane.showMessageDialog(null, str);
}
}
My initial list is: {2, 4, 5, 7, 1, 3, 6, 8};
But after sorting i am getting: 2, 3, 4, 5, 6, 7, 1, 8
Zulfi.
Last edited by a moderator: