-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmergeSort.java
More file actions
36 lines (32 loc) · 854 Bytes
/
mergeSort.java
File metadata and controls
36 lines (32 loc) · 854 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package sorting;
import java.util.ArrayList;
public class mergeSort {
int fl=0;
public ArrayList<Integer> merge(ArrayList<Integer> a,int p,int q,int r ){
int i,j;i=j=0;
ArrayList<Integer> l=new ArrayList<Integer>();
ArrayList<Integer> rh=new ArrayList<Integer>();
while(i<(q-p+1)) l.add(i++, a.get(p+i-1));
l.add(i, Integer.MAX_VALUE);
while(j<(r-q)) rh.add(j++, a.get(q+j));
rh.add(j, Integer.MAX_VALUE);
//ArrayList<Integer> a=new ArrayList<>();
int k;i=j=0;k=p;
while(k<r){
if(l.get(i)<=rh.get(j)){
a.set(k++, l.get(i++));
}
else
a.set(k++, rh.get(j++));
}
return a;
}
private ArrayList<Integer> mergeSort(ArrayList<Integer> a, int p, int r) {
// TODO Auto-generated method stub
if((p+r%2)!=0) fl=1;
int q=((p+r)/2)+fl;
mergeSort(a,p,q);
mergeSort(a, q+1, r);
return merge(a, p,q,r);
}
}