Stooge-sort排序

//此题是《算法导论》的课后题,p95.
// T(n) = 3T(2/3*n) +O(1)效率为指数级。




    #include 
" stdafx.h "
#include 
< iostream >
#include 
< algorithm >

bool  Stooge_Sort( int  A[],  int  i ,  int  j)
{   
    
if(A[i] > A[j])
        std::swap(A[i], A[j]);
    
if(i+1 >= j)
        
return false;
    
int k = (j-i+1)/3;
    Stooge_Sort(A, i, j
-k);
    Stooge_Sort(A, i
+k, j);
    Stooge_Sort(A, i, j
-k);
}


       

int  main( int  argc,  char *  argv[])
{
    
int B[10= {33,4,5,6,7,8,33,2,54,3};
    Stooge_Sort(B, 
09);
    
for(int i = 0; i < 10; i++)
        std::cout
<<B[i]<<std::endl;
    
return 0;
}
 

你可能感兴趣的:(Stooge-sort排序)