幾個簡單的時間複雜度計算問題

x=90; y=100; 
while(y>0)
	if(x>100)
 		{x=x-10;y--;}
	else x++;

答:x=90,y=100,直接進入else語句x++,f(n)=1,所以時間複雜度T(n)=O(1).

for (i=0; i<n; i++)
	for (j=0; j<m; j++)
		a[i][j]=0;

答:第一個for循環執行n次,第二個for循環執行m次,a[i][j]的f(n)= nm,所以時間複雜度T(n)=O(nm).

s=0;
	for i=0; i<n; i++)
		for(j=0; j<n; j++)
         s+=B[i][j];
sum=s;

答:第一個for循環執行n次,第二個for循環執行n次,s+=B[i][j]的f(n)= n2,所以時間複雜度T(n)=O(n2).

i=1;
while(i<=n)
	i=i*3;

答:i=1,3,9…,設循環次數是x,i=3x,循環條件是i<=n,即3x<=n,所以x<=log3n, 所以時間複雜度T(n)=O(log3n).

x=0;
for(i=1; i<n; i++)
   for (j=1; j<=n-i; j++)
   		x++;

答:T(n)=1+2+3+…+(n-1)=n(n-1)/2,所以時間複雜度T(n)=O(n2).

x=n; //n>1
y=0;
while(x>=(y+1)* (y+1))
    y++;

答:z次循環後,y的值爲z,退出循環條件是n<(y+1)2即n<(z+1)2,z>√n–1,所以時間複雜度T(n)=O(√n).

相關文章:
《C#開發WindowsForm程序Load事件未註冊》
《Visual Studio 2013如何顯示代碼行數》
《PCI DSS不合規的處理方法》
《PHP語言實現網站登錄功能》
《PHP實現退出登錄功能》
《LayUI數據表格查詢與重載》
《PHP+MySQL+LayUI分頁查詢顯示》


作者:戴翔
電子郵箱:[email protected]
微信開發者主頁:Null
簡介:中國公民,CSDN博客專家,秦淮區疾控中心託管社會公益組織指南針工作室志願者,創業公司研發中心負責人,在校大學生。第二屆大學生微信小程序應用開發大賽全國三等獎項目第一作者,微信小程序《約車嗎》、《慶雲慈善會》、《鋒雲速檢》項目總工程師。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章