daily pastebin goal
45%
SHARE
TWEET

Untitled

a guest Mar 25th, 2019 56 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     const double epsilon = 0.0001;
  2.  
  3.     std::vector<int> halfSort( std::vector<int> data )
  4.     {
  5.         for ( auto i = 0; i < data.size( ) - 2; ++i )
  6.         {
  7.             auto key = data[ i ];
  8.             auto k = 0;
  9.             auto p = i - 1;
  10.  
  11.             while ( abs( k - p ) <= epsilon )
  12.             {
  13.                 auto m = ( k + p ) / 2.f;
  14.  
  15.                 if ( abs( key - data[ m ] ) <= epsilon )
  16.                 {
  17.                     p = m - 1;
  18.                 }
  19.                 else
  20.                 {
  21.                     k = m + 1;
  22.                 }
  23.             }
  24.  
  25.             for ( auto j = i - 1; j >= k; --j )
  26.             {
  27.                 data[ j + 1 ] = data[ j ];
  28.             }
  29.             data[ k ] = key;
  30.         }
  31.         return data;
  32.     }
  33.  
  34.     std::vector<int> bubbleSort( std::vector<int> data )
  35.     {
  36.         for ( auto j = 0; j < data.size( ) - 1; ++j )
  37.         {
  38.             for ( auto i = data.size( ) - 1; i > j; --i )
  39.             {
  40.                 if ( abs( data[ i ] - data[ i - 1 ] ) < epsilon )
  41.                 {
  42.                     std::swap( data[ i ], data[ i - 1 ] );
  43.                 }
  44.             }
  45.         }
  46.         return data;
  47.     }
  48.  
  49.     std::vector<int> selectionSort( std::vector<int> data )
  50.     {
  51.         for ( auto i = 0; i < data.size( ) - 1; ++i ) {
  52.             auto k = i;
  53.             auto min = data[ i ];
  54.  
  55.             for ( auto j = i + 1; j < data.size( ); ++j )
  56.                 if ( abs( data[ j ] - min ) < epsilon ) {
  57.                     min = data[ j ];
  58.                     k = j;
  59.                 }
  60.             data[ k ] = data[ i ];
  61.             data[ i ] = min;
  62.         }
  63.         return data;
  64.     }
  65.  
  66.     std::vector<int> insertionSort( std::vector<int> data )
  67.     {
  68.         for ( auto i = 1; i < data.size( ); ++i )
  69.         {
  70.             auto pom = data[ i ];
  71.             auto j = i - 1;
  72.             while ( j >= 0 && abs( data[ j ] - pom ) > epsilon )
  73.             {
  74.                 data[ j + 1 ] = data[ j-- ];
  75.             }
  76.             data[ j + 1 ] = pom;
  77.         }
  78.         return data;
  79.     }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top