| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 685 人关注过本帖
标题:快速排序 ,为什么出现相同的数就不出结果了
取消只看楼主 加入收藏
CYdy
Rank: 2
等 级:论坛游民
帖 子:9
专家分:12
注 册:2014-12-22
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:2 
快速排序 ,为什么出现相同的数就不出结果了
#include<stdio.h>
void swap(int *p1,int*p2)
{
    int p;
    p=*p1;
    *p1=*p2;
    *p2=p;
}
void Quick_Sort(int a[],int start,int end)
{
    int pos;
    if(start<end)
        {
            pos=pro(a,start,end);
            Quick_Sort(a,start,pos-1);
            Quick_Sort(a,pos+1,end);
        }
}
int pro(int a[],int low,int high)
{
    int key=a[low],p,i;
    while(low!=high)
        {
            while(a[high]>key)
                high--;
            swap(&a[low],&a[high]);
            while(a[low]<key)
                low++;
            swap(&a[low],&a[high]);
        }
    a[low]=key;
    return low;
}
main()
{
    int a[10]={23,4,24,31,41,1,56,43,67,5};//当a[10]中存在相同的数就不出结果了
    int i;
    Quick_Sort(a,0,9);
    for(i=0;i<10;i++)
        printf("%d ",a[i]);
}
搜索更多相关主题的帖子: include start 
2015-01-04 18:33
CYdy
Rank: 2
等 级:论坛游民
帖 子:9
专家分:12
注 册:2014-12-22
收藏
得分:0 
回复 2楼 longwu9t
#include<stdio.h>
int pro(int a[],int low,int high)
{
    int key=a[low];
    while(low<high)
        {
            while(low<high&&a[high]>=key)
                high--;
            if(low<high)
                a[low++]=a[high];
            while(low<high&&a[low]<=key)
                low++;
            if(low<high)
                a[high--]=a[low];
        }
    a[low]=key;
    return low;
}
void Quick_Sort(int a[],int start,int end)
{
    int pos;
    if(start<end)
        {
            pos=pro(a,start,end);
            Quick_Sort(a,start,pos-1);
            Quick_Sort(a,pos+1,end);
        }
}
main()
{
    int a[10]={23,4,24,31,42,1,56,43,67,5};
    int i;
    Quick_Sort(a,0,9);
    for(i=0;i<10;i++)
        printf("%d ",a[i]);
}
你的和这个是一样的,我能看懂。这是我自己看快速排序思想敲出来的,我想知道这个是怎么错了。求帮忙,我就觉得是对的啊,可还是错的。
2015-01-04 22:20
CYdy
Rank: 2
等 级:论坛游民
帖 子:9
专家分:12
注 册:2014-12-22
收藏
得分:0 
回复 5楼 longwu9t
受教了
2015-01-05 20:09
快速回复:快速排序 ,为什么出现相同的数就不出结果了
数据加载中...
 
   



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

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