排序1亿个数据,尽可能快的快速排序?
(2012-04-11 21:22:22)
标签:
it |
分类: 算法And设计模式 |
void qsort3(int l, int u)
{ int i, j;
int t;
int temp;
if (l >= u)
return;
t = x[l];
i = l;
j = u+1;
for (;;) {
do i++; while (i <= u && x[i] < t);
do j--; while (x[j] > t);
if (i > j)
break;
temp = x[i];
x[i] = x[j];
x[j] = temp;
}
swap(l, j);
qsort3(l, j-1);
qsort3(j+1, u);
}
小弟,用《编程珠玑》上的快排方法qsort3(如上面的算法)对一亿个数进行快速排序,时间大概是15秒,请问有什么优化方法!不胜感激
{ int i, j;
int t;
int temp;
if (l >= u)
return;
t = x[l];
i = l;
j = u+1;
for (;;) {
do i++; while (i <= u && x[i] < t);
do j--; while (x[j] > t);
if (i > j)
break;
temp = x[i];
x[i] = x[j];
x[j] = temp;
}
swap(l, j);
qsort3(l, j-1);
qsort3(j+1, u);
}
小弟,用《编程珠玑》上的快排方法qsort3(如上面的算法)对一亿个数进行快速排序,时间大概是15秒,请问有什么优化方法!不胜感激

加载中…