荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: oopilix (紫薇斋的老伯), 信区: Visual
标  题: VC中分治递归求字符串最大最小值
发信站: 荔园晨风BBS站 (Mon Jul 28 14:27:51 2003), 站内信件

现在用分治递归改成如下,感觉繁了点。直接操作内存,容易失错,不提倡。
unsigned short MaxMin(char *str ,char *Max,char *Min)
{
        int n=strlen(str),i=0;
        char *p,*q;
        char Max1[1],Max2[1],Min1[1],Min2[1];
        p=(char*)malloc(sizeof(char)*n);
        memset(p,'\0',n+1);
        q=p;
        if(n==1)
        {       *Max=*Min=*str;
           return 0;
        }
        if(n==2)
        {
            *str>*(str+1)?(*Max=*str,*Min=*(str+1)):(*Min=*str,*Max=*(str+1));
            return 0;
        }
    else
       {
        strncpy(p,str,n/2);
           MaxMin(q,Max1,Min1);
        strncpy(p+n/2,str+n/2,n-n/2);
        q=p+n/2;
           MaxMin(q,Max2,Min2);
        *Max= *Max1>*Max2?(*Max1):(*Max2);
        *Min= *Min1<*Min2?(*Min1):(*Min2);
       }
      return 0;
}


--


 ※ IP来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM:192.168.64.33]


※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 61.144.235.41]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店