[转] quicksort.c
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
typedef TYPE T;
void quicksort(T* data, int N)
{
int i, j;
T v, t;
if( N <= 1 )
return;
// Partition elements
v = data[0];
i = 0;
j = N;
for(;;)
{
while(data[++i] < v && i < N) { }
while(data[--j] > v) { }
if( i >= j )
break;
t = data[i];
data[i] = data[j];
data[j] = t;
}
t = data[i-1];
data[i-1] = data[0];
data[0] = t;
quicksort(data, i-1);
quicksort(data+i, N-i);
}
本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名小橋流水(包含链接)。如您有任何疑问或者授权方面的协商,请给我发邮件。