啊哈磊_编程从这里起步

标题: 求助:当k从大到小排序时正确,不规则是不正确怎么修改 [打印本页]

作者: foreast    时间: 2014-5-11 15:32
标题: 求助:当k从大到小排序时正确,不规则是不正确怎么修改
#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);
    }
}

作者: foreast    时间: 2014-5-11 15:35
当k值不规则,中间随便改个数譬如66,排序就不正确了,有高手帮忙么?
作者: rosynirvana    时间: 2014-5-11 15:41
不规则是啥意思?
作者: foreast    时间: 2014-5-11 16:05
rosynirvana 发表于 2014-5-11 15:41
不规则是啥意思?

你把k值改的乱一点,输出就错了




欢迎光临 啊哈磊_编程从这里起步 (https://bbs.codeaha.com/) Powered by Discuz! X3.2