//#include "mergeSort.h"
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
using namespace std;
int par(int * a,int left, int right)
{// left and right reachable
int first_large = left;
int pivot = a[right];
for(int i =left; i<=right;++i)
{
if(a[i] < pivot)
{
int temp = a[i];
a[i] = a[first_large];
a[first_large] = temp;
++first_large;
}
}
int te = a[right];
a[right] = a[first_large];
a[first_large] = te;
return first_large;
}
void q_sort(int * a, int left,int right)
{
int q;
if(left<right)
{
q = par(a,left,right);
q_sort(a,left,q-1);
q_sort(a,q+1,right);
}
}
#define N 10000
int main()
{
int a[N] = {1,3,233,7,9,1,3,233,7,9};
for(int i = 0;i<N;++i)
{
a[i] = rand()%10009;
}
q_sort(a,0,N-1);
for(int i = 0;i<N;++i)
{
printf("%d ",a[i]);
cout << endl;
}
system("pause");
return 0;
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
using namespace std;
int par(int * a,int left, int right)
{// left and right reachable
int first_large = left;
int pivot = a[right];
for(int i =left; i<=right;++i)
{
if(a[i] < pivot)
{
int temp = a[i];
a[i] = a[first_large];
a[first_large] = temp;
++first_large;
}
}
int te = a[right];
a[right] = a[first_large];
a[first_large] = te;
return first_large;
}
void q_sort(int * a, int left,int right)
{
int q;
if(left<right)
{
q = par(a,left,right);
q_sort(a,left,q-1);
q_sort(a,q+1,right);
}
}
#define N 10000
int main()
{
int a[N] = {1,3,233,7,9,1,3,233,7,9};
for(int i = 0;i<N;++i)
{
a[i] = rand()%10009;
}
q_sort(a,0,N-1);
for(int i = 0;i<N;++i)
{
printf("%d ",a[i]);
cout << endl;
}
system("pause");
return 0;
}
这个是 中间 有序的 ·· 冒泡是 后半部分 有序的···