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)呢?也就是说复杂度为零?
for (int i = 1; i <= n; i++){}
for (int i = 1; i <= n; i++){}
将一块大小为N/8的内存命名为a,每一位都是默认的0.遍历给定的n个数,把a中第k个位置设为1
这个算法时间复杂度肯定是o(n),没有最好的情况和最坏的情况。其空间复杂度呢?是不是因为只用了一块内存a,空间复杂度就是1?
当然不是0了,你每次都要进行i++,还有最上面的代码while有可能是死循环