早就听说过快速排序法(主要是叶大神整天叨叨快排),想到这么重要的算法还不会各种羞愧,然后就百度百科,自己摸索领悟这个算法,居然像模像样的把算法实现了个大概,然后,同时写了冒泡,打算让他们PK一下!!!
先把这个程序贴出来。
#include <stdio.h>
#include <stdlib.h>
#define MAX 10000
#define QP
#ifdef QP
int qp(int *left,int *right)
{
int *l,*r;
int k;
if (left >= right)
return 0;
l = left;
r = right;
k = *left;
while (l < r)
{
while (*r > k && r > l)
r--;
*l = *r;
while (*l < k && l < r)
l++;
*r = *l;
}
*r = k;
qp(left,r - 1);
qp(l + 1,right);
}
#endif
int main()
{
freopen ("1.txt","r",stdin);
int a[MAX];
int i;
for (i = 0; i < MAX; i++)
{
scanf ("%d",&a[i]);
}
#ifdef QP
qp(&a[0],&a[MAX - 1]);
#endif
#ifndef QP
int k,tmp;
for (k = MAX; k > 0; k--)
for (i = 1; i < k; i++)
{
if (a[i - 1] > a[i])
{
tmp = a[i - 1];
a[i - 1] = a[i];
a[i] = tmp;
}
}
#endif
for (i = 0; i < MAX; i++)
{
printf ("%d ",a[i]);
}
return 0;
}