时间复杂度(期末第二更)

算法分析的目的:分析算法的效率以求改进

时间复杂度:算法中基本操作重复执行的次数的阶数(语句频度的首项去掉系数),记作T(n)=O(f(n))

例如:

下面时间复杂度为O(nlog2(n))

count=0; 
for(k=1;k<=n;k*=2)//O(log2(n))
	for(j=1;j<=n;j+1)//O(n)
		count++; 

下列算法段的语句频度为 和时间复杂度为O(n^3) 

for(i=1;i<=n;i++) 
    for (j=1;j<=i;j++) 
        for ( k=1;k<=j;k++)
            x += delta;

常见排序方式时间复杂度:

  最差时间分析 平均时间复杂度 稳定度 空间复杂度
冒泡排序 O(n^2) O(n^2) 稳定 O(1)
快速排序 O(n^2) O(nlog2(n)) 不稳定 O(log2(n))~O(n)
选择排序 O(n^2) O(n^2) 稳定 O(1)
二叉树排序 O(n^2) O(nlog2(n)) 不稳定 O(n)
插入排序 O(n^2) O(n^2) 稳定 O(1)
堆排序 O(nlog2(n)) O(nlog2(n)) 不稳定 O(1)
希尔排序 0 0 不稳定 O(1)

(上表来自博客https://blog.csdn.net/zxm490484080/article/details/72210501

)



猜你喜欢

转载自blog.csdn.net/fm_xu156156/article/details/80765927
今日推荐