Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2014
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.90 KB | None | 0 0
  1. private static <E extends Comparable<E>> void merge (E[] array, int leftBottom, int leftTop, int rightBottom, int rightTop){
  2. @SuppressWarnings("unchecked")
  3. E[] middleMan = (E[]) Array.newInstance(array.getClass().getComponentType(), array.length+1);
  4.  
  5. int leftFlag = leftBottom;
  6. int rightFlag = rightBottom;
  7. int flag = leftBottom;
  8. int elements = (rightTop - leftBottom + 1);
  9.  
  10. while ((leftFlag <= leftTop) && (rightFlag <= rightTop)){
  11. if (array[leftFlag].compareTo(array[rightFlag])<=0){
  12. middleMan[flag++] = array[leftFlag++];}
  13. else{
  14. middleMan[flag++] = array[rightFlag++];}}
  15. while (leftFlag <= leftTop){
  16. middleMan[flag++] = array[leftFlag++];}
  17. while (rightFlag <= rightTop){
  18. middleMan[flag++] = array[rightFlag++];}
  19. for (int i = 0; i < elements; i++){
  20. array[rightTop] = middleMan[rightTop];
  21. rightTop--;}}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement