Advertisement
karbaev

Non-recursive merge sort

May 21st, 2016
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.91 KB | None | 0 0
  1. float a[50000000],b[50000000];
  2. void mergesort (long num)
  3. {
  4.     int rght, wid, rend;
  5.     int i,j,m,t;
  6.  
  7.     for (int k=1; k < num; k *= 2 ) {      
  8.         for (int left=0; left+k < num; left += k*2 ) {
  9.             rght = left + k;        
  10.             rend = rght + k;
  11.             if (rend > num) rend = num;
  12.             m = left; i = left; j = rght;
  13.             while (i < rght && j < rend) {
  14.                 if (a[i] <= a[j]) {        
  15.                     b[m] = a[i]; i++;
  16.                 } else {
  17.                     b[m] = a[j]; j++;
  18.                 }
  19.                 m++;
  20.             }
  21.             while (i < rght) {
  22.                 b[m]=a[i];
  23.                 i++; m++;
  24.             }
  25.             while (j < rend) {
  26.                 b[m]=a[j];
  27.                 j++; m++;
  28.             }
  29.             for (m=left; m < rend; m++) {
  30.                 a[m] = b[m];
  31.             }
  32.         }
  33.     }
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement