int midPortition(int * A,int p,int r)
{
int i,j,k;
int mid;
srand(time(0));
i = p + rand()%(r-p+1);
j = p + rand()%(r-p+1);
k = p + rand()%(r-p+1);
if( (A[i] >= A[j] && A[j] >= A[k]) || (A[i]<=A[j] && A[j]<=A[k]))
{
mid = j;
}
else if((A[j] >= A[i] && A[i] >= A[k]) || (A[j]<=A[i] && A[i]<=A[k])
{
mid = i;
}
else
{
mid = k;
}
int temp = A[r];
A[r] = A[i];
A[i]=temp;
return portition(A,p,r);
}三数取中的划分方式
最新推荐文章于 2024-10-01 18:02:05 发布
本文介绍了一种基于随机选择的中位数分区算法实现,该算法通过随机选取三个元素中的中位数作为枢纽元来优化快速排序过程,提高排序效率。
1626

被折叠的 条评论
为什么被折叠?



