面試題目收集

暖楓無敵發表於2014-01-19

1、請寫出一個逆序的遞迴演算法及非遞迴演算法.

遞迴演算法:

char  * Reverse(char *s,int left,int right)
{
       if(left>=right)
        {
               return s;
        }
        char t = s[left];
       s[left]=s[right];
       s[right] = t;
       Reverse(s,left+1,right-1);
}

非遞迴演算法:

char  * Reverse(char *s,int left,int right)
{
       while(left<right)
        {          
		char t = s[left];
       		s[left++]=s[right];
       		s[righ--t] = t;
        }
	return s;
}


然後呼叫的話,直接

 Reverse(s,0,strlen(s));

即可。


相關文章