Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private static <E extends Comparable<E>> void merge (E[] array, int leftBottom, int leftTop, int rightBottom, int rightTop){
- @SuppressWarnings("unchecked")
- E[] middleMan = (E[]) Array.newInstance(array.getClass().getComponentType(), array.length+1);
- int leftFlag = leftBottom;
- int rightFlag = rightBottom;
- int flag = leftBottom;
- int elements = (rightTop - leftBottom + 1);
- while ((leftFlag <= leftTop) && (rightFlag <= rightTop)){
- if (array[leftFlag].compareTo(array[rightFlag])<=0){
- middleMan[flag++] = array[leftFlag++];}
- else{
- middleMan[flag++] = array[rightFlag++];}}
- while (leftFlag <= leftTop){
- middleMan[flag++] = array[leftFlag++];}
- while (rightFlag <= rightTop){
- middleMan[flag++] = array[rightFlag++];}
- for (int i = 0; i < elements; i++){
- array[rightTop] = middleMan[rightTop];
- rightTop--;}}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement