快速排序

来源:互联网 发布:西安79家网络诈骗公司 编辑:程序博客网 时间:2024/05/16 15:15
#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 ] ;      //附加内存tempwhile( 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 ) ;//递归调用1qsort(array , low + 1 , _height ) ; //递归调用2return ; }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 ;}

0 0
原创粉丝点击