小编Rav*_*sla的帖子

算法的运行时间(大O))

我正在计算这个算法的运行时间?

                              Cost      No Of Times

for(j=1;j<=n-1;j++){          c1       n(loop will run for n-1 times +1 for failed cond              

    for(i=0;i<=n-2;i++){      c2       n*(n-1) (n-1 from outer loop and n for inner 

        if(a[i]>a[i+1]){      c3       (n-1)*(n-1)

            Swap              c4       (n-1)*(n-1) {in worst case }
        }
    }
Run Code Online (Sandbox Code Playgroud)

在最坏的情况下, T(n)= c1*n + c2*(n-1)n + c3(n-1)(n-1)+ c4*(n-1)(n-1) 即O(n ^ 2)

在最好的情况下:

T(n)= c1*n + c2*(n-1)n + c3(n-1)(n-1) ,其为O(n ^ 2).

但实际上在最佳情况下,冒泡排序具有时间复杂度O(n). 谁能解释一下?

algorithm time-complexity asymptotic-complexity

5
推荐指数
0
解决办法
254
查看次数

*y ++和++*y之间的区别?

我对如何执行此代码感到困惑.假设我们有

int x=30,*y,*z;
y=&x;
Run Code Online (Sandbox Code Playgroud)

*y ++和++*y之间有什么区别?以及该计划的产出是什么?

#include<stdio.h>
int main(){

    int x=30,*y,*z;
    y=&x;
    z=y;
    *y++=*z++;
   x++;
   printf("%d %d %d ",x,y,z);
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

c pointers pointer-arithmetic

5
推荐指数
3
解决办法
8592
查看次数