We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
Thanks for sharing. I was able to pass all test cases without timeout by combining this method with a merge sort algorithm
importjava.io.*;importjava.util.*;importjava.text.*;importjava.math.*;importjava.util.regex.*;publicclassSolution{publicstaticvoidmain(String[]args){Scannerin=newScanner(System.in);intn=in.nextInt();String[]unsorted=newString[n];for(intunsorted_i=0;unsorted_i<n;unsorted_i++){unsorted[unsorted_i]=in.next();}MergeSorterms=newMergeSorter();ms.sort(unsorted,0,unsorted.length-1);for(Strings:unsorted)System.out.println(s);//bigSort(unsorted);}}classMergeSorter{publicvoidmerge(Stringarr[],intlidx,intmidx,intridx){intlsize=midx-lidx+1;intrsize=ridx-midx;String[]larr=newString[lsize];String[]rarr=newString[rsize];for(inti=0;i<lsize;i++)larr[i]=arr[lidx+i];for(intj=0;j<rsize;j++)rarr[j]=arr[midx+j+1];inti=0,j=0;intk=lidx;StrComparatorcomp=newStrComparator();while(i<lsize&&j<rsize){if(comp.compare(larr[i],rarr[j])<0){arr[k]=larr[i];i++;}else{arr[k]=rarr[j];j++;}k++;}while(i<lsize){arr[k]=larr[i];i++;k++;}while(j<rsize){arr[k]=rarr[j];j++;k++;}}publicvoidsort(Stringarr[],intlidx,intridx){if(lidx<ridx){intmidx=(ridx+lidx)/2;sort(arr,lidx,midx);sort(arr,midx+1,ridx);merge(arr,lidx,midx,ridx);}}}classStrComparatorimplementsComparator<String>{publicintcompare(Stringstr1,Stringstr2){if(str1.length()==str2.length())returnstr1.compareTo(str2);else//if return > 0, str1 is the larger numberreturnstr1.length()-str2.length();}}
Big Sorting
You are viewing a single comment's thread. Return to all comments →
Thanks for sharing. I was able to pass all test cases without timeout by combining this method with a merge sort algorithm