您的位置:首页 > 产品设计 > UI/UE

排序算法——快速排序(Quick Sort)

2014-08-30 11:17 225 查看
快速排序(一)

一次划分;递归算法

C/C++代码:

#include <iostream>
#include <stdlib.h>

using namespace std;

void Print( int r[], int n )
{
for( int i = 0; i < n; i++ )
{
cout << r[i] << "  ";
}
cout << endl;
}

void Swap( int& a, int & b )
{
int temp = a;
a = b;
b = temp;
}

int Partition( int r[], int left, int right )
{
int i = left, j = right;
while ( i < j )
{
while( i < j && r[i] <= r[j] ) j--;
if( i < j ) { Swap( r[i], r[j] ); i++; }

while( i < j && r[i] <= r[j] ) i++;
if( i < j ) { Swap( r[i], r[j] ); j--; }
}
return i;
}

void QuickSort( int r[], int left, int right )
{
if( left < right )
{
int pivot = Partition( r, left, right );
QuickSort( r, left, pivot-1 );
QuickSort( r, pivot+1, right );
}
return;
}

int main()
{
int r[] = { 34, 12, 45, 78, 52, 18, 67, 90, 64, 72, 27 };
int n = sizeof( r ) / sizeof( int );
Print( r, n );
QuickSort( r, 0, n - 1 );
Print( r, n );

system( "PAUSE" );

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: