标题:[求助]请各位帮帮忙!!!
只看楼主
笑红尘
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2004-11-20
 问题点数:0 回复次数:2 
[求助]请各位帮帮忙!!!

这是一个快速排序问题, 运行时老说 执行了非法操作 ,关闭程序.

这到底是怎么回事啊?我经常碰到这样的问题!很是郁闷

望各位志同道合的朋友能 帮小弟一把

小弟不胜感激!!!!

#define n 20 int Partion(int L[],int low,int high) { int pivotkey; L[0]=L[low]; pivotkey=L[low]; while(low<high) { while(low<high&&L[high]>=pivotkey) --high; L[low]=L[high]; while(low<high&&L[low]<=pivotkey) ++low; L[high]=L[low]; } L[low]=pivotkey; return pivotkey;

} int Sort(int L[],int low,int high) {int pivotloc; if(low<high) { pivotloc=Partion(L,low,high); Sort(L,low,pivotloc-1); Sort(L,pivotloc+1,high); } } main() {int L[n+1],i; for(i=1;i<n+1;i++) scanf("%d",&L[i]); Sort(L,1,20); for(i=1;i<n+1;i++) printf("%d",L[i]); }

[此贴子已经被作者于2004-11-20 11:58:52编辑过]

搜索更多相关主题的帖子: 不胜感激 朋友 
2004-11-20 11:41
stnlcd
Rank: 1
等 级:新手上路
帖 子:177
专家分:1
注 册:2004-11-21
得分:0 
你太马虎了!你的Partion函数应该返回枢轴的位置(low),而不是枢轴的值(pivotkey).即将return pivotkey; 改为return low;

要让一个男人破产,请给他一架相机,要让一个男人倾家荡产,请给他一架望远镜。
2004-11-21 22:46
笑红尘
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2004-11-20
得分:0 

就是啊

谢谢了


2004-11-25 14:50



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-7931-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.708686 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved