mramine364

mergesort

May 14th, 2016
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function mergeSort(t,s,e){
  2.     _mergeSort(t,0,t.length-1);
  3. }
  4.  
  5. function _mergeSort(t,s,e){
  6.     if( s>=e )
  7.         return;
  8.     var isSorted , k=s;
  9.     while( k<e && t[k]<t[k+1] ) k++;
  10.     isSorted = k==e;
  11.     if( !isSorted ){
  12.         var se = Math.floor((s+e)/2);
  13.         _mergeSort(t, s, se);
  14.         _mergeSort(t, se+1, e);
  15.         var c = [], i=s, j=se+1;
  16.         while( i<=se && j<=e ){
  17.             if( t[i]<t[j] ){
  18.                 c.push(t[i]);
  19.                 i++;
  20.             }else{
  21.                 c.push(t[j]);
  22.                 j++;
  23.             }
  24.         }
  25.         while( i<=se ){
  26.             c.push(t[i]);
  27.             i++;
  28.         }
  29.         while( j<=e ){
  30.             c.push(t[j]);
  31.             j++;
  32.         }
  33.         j=0;
  34.         for(i=s;i<=e;i++){
  35.             t[i] = c[j];
  36.             j++;
  37.         }
  38.     }
  39.  
  40. }
Advertisement
Add Comment
Please, Sign In to add comment