关于递归调用的指针参数问题

whywuqi whywuqi 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
刚开始学习c编程,对照《啊哈!算法》写了一下快速排序的小程序,但是在递归调用的时候,codeblocks报错,没想明白,大家帮忙看看!

#include <stdio.h>
#define N 10
void quicksort(int left, int right, int *p);

int main(void)
{
int i;
int integer[N]={6,1,5,2,9,10,8,7,4,3};

quicksort(0,N-1,integer);

for(i=0;i<N;i++)
printf("%d ",integer[i]);

return 0;
}

void quicksort(int left, int right, int *p)
{
int i,j,t,temp;

temp=p[left];
i=left;
j=right;

while(i<j)
{
while(p[j]>=temp&&j>i)
j--;
while(p[i]<temp&&j>i)
i++;
if(i<j)
{
t=p[j];
p[j]=p[i];
p[i]=t;
}
}

if(i==j)
{
p[left]=p[i];
p[i]=temp;
}
quicksort(left,i-1,p); //单步调试时,在这里报错,不知道原因。
quicksort(i+1,right,p);
}
...全文

相关推荐

评论 6
收藏 已收藏
分享
返回顶部
whywuqi
C语言 70,040 成员 243,237 内容