#include <iostream>
#include <cstdio>
#include <cmath>
#include <ctime>
using namespace std ;
int* array = NULL ;
void get_rand_num(int ** parray , int len) //生成一个随机数组
{
srand((unsigned int )time(NULL)) ; //下种子
*parray = new int[len] ;
for(int i = 0 ; i < len ; i++)
{
(*parray)[i] = rand() % len ;
}
}
void qsort( int *array , int _low , int _height )
{
if(_low >= _height ) //递归基
return ;
int low = _low ;
int height = _height ;
int pviod = low ;
int temp = array[ low ] ; //附加内存temp
while( low <height ) //如果连个下标不相等继续移动
{
while( low <height ) //向左移动height
{
if( array[ height ] < temp )
{
array[ low ] = array[ height ] ;
break;
}
height-- ;
}
while( low < height ) //向右移动low
{
if( array[ low ]> temp )
{
array[ height ] = array[ low ] ;
break ;
}
low++ ;
}
}
array[ low ] = temp ;
qsort(array , _low , low -1 ) ; //递归调用1
qsort(array , low + 1 , _height ) ; //递归调用2
return ;
}
int main(int argc , char** argv)
{
//获取随机数组并输出
int len = 100 ;
get_rand_num(&array , len) ;
cout<<"random array result:"<<endl ;
for(int i = 0 ; i <len ; i++)
{
cout<<"i = "<<array[ i ] <<endl ;
}
//快速排序
qsort(array , 0 , len -1) ;
for(int i = 0 ; i < len ; i++)
{
cout<<"i:"<<i<<"--"<<array[ i ]<<endl ;
}
delete[ ]array ; array = NULL ;
system("pause") ;
return 0 ;
}
快速排序
最新推荐文章于 2024-07-17 10:35:12 发布