1001_程序时间复杂度及拓展

2020-04-14  本文已影响0人  掌灬纹

时间复杂度是衡量一个算法好坏的重要标准,拿排序算法来说,同样是排序可以选择时间复杂度为O(n^2)的冒泡排序,还可以选择O(nlogn)的快排(或归并排序),这样比较就明显发现快排算法肯定是优于冒泡排序的(两者都不涉及空间占用)

下面举几个比较简单的时间复杂度分析例子

int y = 0;
while((y+1)*(y+1) <= n)
      y += 1;
count = 0;
for(k=1;k<=n;k*=2)
  for(j=1;j<=n;j++)
    count++;
int func(int n){
  int i = 0; sum = 0;
  while(sum < n) sum += ++i;
}
int func(int n){
  int i = 0; sum = 0;
  while(sum < n){
      i++;
      sum+=i;
  }
}

拓展:递归程序时间复杂度的分析

int Fibo(int n){
  if(n <= 0) return -1;
  if(n == 1 || n == 2)
      return 1;
  return Fibo(n-1) + Fibo(n-2);
}
上一篇下一篇

猜你喜欢

热点阅读