gpt4 book ai didi

c - C 中的递归快速排序

转载 作者:太空宇宙 更新时间:2023-11-04 02:07:38 26 4
gpt4 key购买 nike

<分区>

我很困惑为什么我的递归快速排序函数不起作用。

这是原始函数调用:

qSort(quickArr,0,inCount-1,&qSwapCount); 

其中inCount-1是最后一个数组元素的位置

这是递归快速排序函数:

void qSort(int *qArr, int left, int right, int *qCount)
{
if(left<right)
{
int pivotIndex=(left+right)/2;
int pivot=partition(qArr, left, right, pivotIndex, qCount);
qSort(qArr, left, pivot-1, qCount);
qSort(qArr, pivot+1,right, qCount);
}
}

这里是主函数

int partition(int *qArr, int left, int right, int pivot, int *qCount)
{

int i;
int pivotValue=qArr[pivot];
int index=left;

swap(&qArr[pivot],&qArr[right]);
(*qCount)++;

for(i=left;i<right;i++);
{
if (qArr[i]<pivotValue)
{
swap(&qArr[i],&qArr[index]);
(*qCount)++;
index++;
}
}
swap(&qArr[index],&qArr[right]);
return index;
}

排序必须到位,紧跟以下提供的伪代码: http://en.wikipedia.org/wiki/Quicksort

感谢您的帮助!

这是我的输出:190 506 115 471 168 229 851 497 728 549 33 435 435 214 439 822 500 797 692 44 731 222 613 550 669 556 556 556 978 756 978 756 402 402 751 351 357 102 976 13 709 27 989 375 150 639 65 552 252 252 542 925 637 273 2 655 827 584 418 163 871 485 985 982 331 810 894 201 620 123 853 853 231 870 335 770 335 774 546 546 7775 351 116 7775 351 116 74775 351 116 73

显然仍未分类 :-D

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