日期:2014-05-20  浏览次数:20700 次

刚看了一个帖子,关于时间复杂度和空间复杂度的,有疑问
Java code
 for (int i = 1; i <= n; i++){

  while(arr[i] != i){

  t = arr[arr[i]];

  arr[arr[i]] = arr[i];

  arr[i] = t;

  }

 }

}


有人说上面的代码的时间复杂度是o(n)

那么是不是可以说下面的代码时间复杂度为o(0)呢?也就是说复杂度为零?
Java code
 for (int i = 1; i <= n; i++){}



------解决方案--------------------
探讨
Java code
 for (int i = 1; i <= n; i++){

while(arr[i] != i){

t = arr[arr[i]];

arr[arr[i]] = arr[i];

arr[i] = t;

}

 }

}


有人说上面的代码的时间复杂度是o(n)

那么是不是可以说下面的代码时间复杂度为o(0)呢?也就是说复杂度为零?
……

------解决方案--------------------
探讨

第一段代码中的while循环油三条语句,时间复杂度是o(n),如果是一条语句,时间复杂度也是o(n),那么如果是100条语句(100条语句中不包含if、while、for、switch、三元运算符),时间复杂度也是o(n)?

------解决方案--------------------
探讨
Java code
 for (int i = 1; i <= n; i++){

while(arr[i] != i){

t = arr[arr[i]];

arr[arr[i]] = arr[i];

arr[i] = t;

}

 }

}


有人说上面的代码的时间复杂度是o(n)

那么是不是可以说下面的代码时间复杂度为o(……