1. 程式人生 > >空間複雜度、時間複雜度、遞迴

空間複雜度、時間複雜度、遞迴



//空間複雜度:實現演算法需要的額外的輔助空間

//時間複雜度:①只保留高階項,低階項直接丟棄
//                    ②係數不要
//                    ③執行次數是常數的是 O(1)


//遞迴需要有:①遞迴前進段   ②邊界條件


/*
//時間複雜度 O(n)
//空間複雜度 O(n)  因為在Age的遞迴中,來回共是2n,但舍掉係數後為n   (類似的遞迴的時間複雜度需注意)
int Age(int n)
{
 int tmp;
 if(n == 1)
 {
  return 10;
 }
 else
  tmp = Age(n-1) + 2;
 return tmp;
}


//已知第一個人10歲,後一個人比前一個人大兩歲,求第五個人的年齡?
#include <stdio.h>
int Age(int n)
{
 int tmp;
 if(n == 1)   //邊界條件
 {
  return 10;
 }
 else
  tmp = Age(n-1) + 2;   //遞迴前進段
 return tmp;
}
int main()
{
 printf("%d\n",Age(5));
 return 0;
}
*/