(int arr[], int si, int ei)
| 1 | public class MergeSort { |
| 2 | //sorting method (to do step1(divide) & step2(sort parts)) |
| 3 | public static void mergeSort(int arr[], int si, int ei) { |
| 4 | if(si >= ei) { |
| 5 | return; |
| 6 | } |
| 7 | int mid = si + (ei - si)/2; // or = (si + ei) / 2; |
| 8 | mergeSort(arr, si, mid); |
| 9 | mergeSort(arr, mid+1, ei); |
| 10 | |
| 11 | merge(arr, si, mid, ei); |
| 12 | } |
| 13 | |
| 14 | //merge method to merge the sorted parts |
| 15 | public static void merge(int arr[], int si, int mid, int ei) { |