void QuickSort(ElemType A[], int low, int high(
{
if(low < high) //递归跳出的条件
{
Partition();
int pivotpos = Partition(A, low, high); //划分
//依次对两个子表进行递归排序
QuickSort(A, low, pivotpos-1);
QuickSort(A, pivotpos+1, high);
}
}
int Partition(EleType A[], int low, int high)
{
ElemType pivot = A[low]; //将当前表中的第一个元素设置为枢纽,对表进行划分
while(low < high)
{
while(low < high && A[high] >= pivot)
--high;
A[low] = A[high]; //将比枢纽小的元素移动到左端
while(low < high && A[low] <= pivot)
++low;
A[high] = A[low];
}
A[low] = pivot; //枢纽元素存放在最终位置
return low; //返回存放枢纽的最终位置
}
经典操作之快速排序算法
最新推荐文章于 2023-01-09 13:21:42 发布