| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 422 人关注过本帖
标题:这个快速排序有问题吗?
只看楼主 加入收藏
zxiq_to
Rank: 1
等 级:新手上路
帖 子:15
专家分:3
注 册:2012-8-18
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
这个快速排序有问题吗?
#include<stdio.h>

void quicksort(int p,int n,int m[])
{   int i,j,k;
    i=p; j=n;
    k=m[p];
    while(i<j)
    {
    while(i<j&&m[j]>k) j++;
    if(i<j){m[i]=m[j];i++;}
    while(i<j&&m[i]<k) i++;
    if(i<j){m[j]=m[i];j++;}
    }
    m[i]=k;
    if(i-1>p) quicksort(p,i-1,m);
    if(i+1<n) quicksort(i+1,p,m);
    return;
}
int main()
{
    int i,j,k[7];
    for(i=0;i<7;i++)
    scanf("%d",&k[i]);
    quicksort(0,6,k);
    for(i=0;i<7;i++)
    printf("%d ",k[i]);
}
怎么一输入数据就退出啊?
我试了一下是第一个while(i<j)
有问题但是不知道为什么。
搜索更多相关主题的帖子: 快速 include void return 
2012-10-06 15:51
zxiq_to
Rank: 1
等 级:新手上路
帖 子:15
专家分:3
注 册:2012-8-18
收藏
得分:0 
哦是j--;
我知道了
2012-10-06 15:59
zxiq_to
Rank: 1
等 级:新手上路
帖 子:15
专家分:3
注 册:2012-8-18
收藏
得分:0 
还有
quicksort(i+1,n,m)
2012-10-06 16:06
zxiq_to
Rank: 1
等 级:新手上路
帖 子:15
专家分:3
注 册:2012-8-18
收藏
得分:0 
void quicksort(int p,int n,int m[])
{   int i,j,k;
    i=p; j=n;
    k=m[i];
    while(i<j)
    {
    while(i<j&&m[j]>=k) j--;
    if(i<j){m[i]=m[j];i++;}
    while(i<j&&m[i]<=k) i++;
    if(i<j){m[j]=m[i];j--;}
    }
    m[i]=k;
    if(i-1>p) quicksort(p,i-1,m);
    if(i+1<n) quicksort(i+1,n,m);
    return;
}
这个是完整的代码,测试了可用。
2012-10-06 16:12
青春无限
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江苏
等 级:贵宾
威 望:24
帖 子:3451
专家分:19340
注 册:2012-3-31
收藏
得分:6 
看看

学 会看代码…学习写程序…学会搞开发…我的目标!呵呵是不是说大话啊!!一切皆可能
2012-10-06 18:40
gaolongtou
Rank: 2
等 级:论坛游民
帖 子:79
专家分:42
注 册:2012-9-25
收藏
得分:8 
看看,我也没看出不知道哪错了。学习啦》
2012-10-06 21:55
姻脂梦
Rank: 6Rank: 6
等 级:侠之大者
帖 子:264
专家分:424
注 册:2012-7-3
收藏
得分:6 
帮顶
2012-10-06 23:28
快速回复:这个快速排序有问题吗?
数据加载中...
 
   



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

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