gpt4 book ai didi

c - 改进快速排序

转载 作者:太空狗 更新时间:2023-10-29 16:41:58 24 4
gpt4 key购买 nike

如果可能,我怎样才能改进以下快速排序(性能方面)。有什么建议么?

void main()
{
quick(a,0,n-1);
}

void quick(int a[],int lower,int upper)
{
int loc;
if(lower<upper)
{
loc=partition(a,lower,upper);
quick(a,lower,loc-1);
quick(a,loc+1,upper);

}
}

/* Return type: int
Parameters passed: Unsorted array and its lower and upper bounds */

int partition(int a[],int lower,int upper)
{
int pivot,i,j,temp;
pivot=a[lower];
i=lower+1;
j=upper;
while(i<j)
{
while((i<upper)&&(a[i]<=pivot))
i++;
while((a[j]>pivot))
j--;
if(i<j)
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}

}//end while

if(pivot>a[j])
{
temp=a[j];
a[j]=a[lower];
a[lower]=temp;
}

return(j);

}//end partition

最佳答案

快速排序算法很容易并行化。如果您有多个内核可以使用,您会看到相当多的加速。根据您的数据集有多大,它可以轻松地为您提供比任何其他优化更快的速度。但是,如果您只有一个处理器或一个相对较小的数据集,则不会有太大的加速。

如果可能的话,我可以详细说明。

关于c - 改进快速排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1688264/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com