搜索
查看: 627|回复: 3
打印 上一主题 下一主题

求助:当k从大到小排序时正确,不规则是不正确怎么修改

[复制链接]
跳转到指定楼层
楼主
发表于 2014-5-11 15:32:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
#include <stdio.h>
#include <stdlib.h>
int main()
{
int k[]={9,8,7,6,5,4,3,2,1,0};
    int i;
    QS(k,0,9);
    for(i=0;i<10;i++)
    {
       printf("%d\n",k[i]);
    }
system("pause");
return 0;
}
void QS( int *s,int l,int r)
{
    int i,j,p;
    if(l<r)
    {
       i=l;
       j=r;
       p=s[i];
       while(i<j)
       {
           while(i<j && s[j]>p) j--;
           if(i<j)
           {
              s[i]=s[j];
              i++;
           }
         
           while(i<j && s[i]<p) i++;
           if(i<j)
           {
           s[i]=s[j];
           j--;
           }
       }
    s[i]=p;
    QS(s,l,i-1);
    QS(s,i+1,r);
    }
}

沙发
 楼主| 发表于 2014-5-11 15:35:05 | 只看该作者
当k值不规则,中间随便改个数譬如66,排序就不正确了,有高手帮忙么?
板凳
发表于 2014-5-11 15:41:43 | 只看该作者
不规则是啥意思?
地板
 楼主| 发表于 2014-5-11 16:05:25 | 只看该作者
rosynirvana 发表于 2014-5-11 15:41
不规则是啥意思?

你把k值改的乱一点,输出就错了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表