MergeSort
unknown
java
2 years ago
1.4 kB
4
Indexable
public class MergeSort { public static void Divide(String arr[],int si,int ei){ if(si>=ei){ return; } int mid = si + (ei-si)/2; Divide(arr, si, mid); Divide(arr, mid+1, ei); conquer(arr, si, mid, ei); } public static void conquer(String arr[],int si,int mid,int ei){ String temp[] = new String[ei-si+1]; int i = si; int j= mid+1; int k = 0; while(i<=mid && j<=ei){ if(isAlphabeticallySmaller(arr[i], arr[j])){ temp[k++] = arr[i++]; }else{ temp[k++] = arr[j++]; } } while (i<=mid) { temp[k++] = arr[i++]; } while(j<=ei){ temp[k++] = arr[j++]; } for(k=0, i=si; k<temp.length; k++,i++){ arr[i] = temp[k]; } } public static boolean isAlphabeticallySmaller(String arr1,String arr2){ if(arr1.compareTo(arr2)<0){ return true; } return false; } public static void printString(String str[]){ for(int i=0; i<str.length; i++){ System.out.print(str[i]+" "); } } public static void main(String[] args) { String str[] = {"sun","earth","mars","mercury"}; Divide(str, 0, str.length-1); printString(str); } }
Editor is loading...
Leave a Comment