
04-02-2006, 12:36
|
|
|
|
חבר מתאריך: 09.09.02
הודעות: 2,866
|
|
סיבוכיות זמן של אלגוריתם רקורסיבי
שלום לכולם,
אני רוצה להיות בטוח: האם סיבוכיות הזמן של הפונקציה הבאה היא O(nlogn), וסיבוכיות המקום O(logn), כש n הוא אורך המחרוזת?
ואם כן, יש לכם מושג איך אני יכול להוריד את סיבוכיות הזמן להיות O(n)?
קוד:
int foldaux (char *s, int n)
{
int i,flag=1;
if (n==0 || n%2==1) return 0;
i = n/2;
do {
i--;
if (s[i]!=s[n-i-1]) flag=0;
} while (i);
return flag + foldaux(s,n/2);
}
תודה מראש.
|