C++快速排序II(另一种快速排序)

2014-11-24 12:41:17 · 作者: · 浏览: 0

另一种C++快速排序

// 快速排序II.cpp : Defines the entry point for the console application.

//

#include "stdafx.h"

#include

#define N 100

using namespace std;

double a[N];

int qartition(double *a,int f,int t)

{

double x = a[t];

int i = f-1,j=f;

while(j

{

if(a[j]<=x)

{

i++;

double temp = a[i];

a[i]=a[j];

a[j]=temp;

}

j++;

}

double temp = a[t];

a[t]=a[i+1];

a[i+1]=temp;

return i+1;

}

void fast_sortII(double *a,int begin,int end)

{

if(begin

{

int q = qartition(a,begin,end);

fast_sortII(a,begin,q-1);

fast_sortII(a,q+1,end);

}

}

int _tmain(int argc, _TCHAR* argv[])

{

int cases;

cout<<"请输入需要排序的案例个数:"<

cin>>cases;

while(cases--)

{

memset(a,0.0,sizeof(a));

int n;

cout<<"请输入需要排序的元素的个数:"<

cin>>n;

cout<<"请输入需要排序的元素:"<

int i = 0;

for(i=0;i

{

cin>>a[i];

}

cout<<"排序前:"<

for(i=0;i

{

cout<

}

cout<

fast_sortII(a,0,n-1);

cout<<"排序后:"<

for(i=0;i

{

cout<

}

cout<

}

system("pause");

return 0;

}

摘自 heyongluoyao8的专栏