用C++写的一个关于QickSort的例子,供大家参考
#include <iostream>
void swap( int*m_p,int* m_temp)
{
int temp = *m_p;
*m_p = *m_temp;
*m_temp = temp;
}
int split( int low, int high, int* m_arr)
{
int temp = (low+high)/2;
swap(m_arr+low,m_arr+temp);
int i =low;
int x = m_arr[low];
for( int j= low+1;j<=high;j++)
{
if( m_arr[j]< x )
{
i++;
if( i!=j)swap(m_arr+i,m_arr+j);
}
}
swap( m_arr+low,m_arr+i );
return i;
}
void quicksort(int low ,int high, int* m_array)
{
int pos;
if( low<high)
{
pos = split( low ,high, m_array);
quicksort(low, pos-1, m_array);
quicksort( pos+1, high, m_array);
}
}
int main()
{
int m_array[] ={ 14,2,58,24,95,17,979879,45,477,255,15,2587,4877,987,956};
int m_size = (sizeof( m_array))/sizeof(m_array[0]);
quicksort( 0,m_size-1,m_array );
for( int i =0 ;i<m_size; i++)
{
std::cout<<m_array[i]<<" " ;
}
std::cout<<std::endl;
return 0;
}