1. 程序段 for i:=n-1 downto 1 dofor j:=1 to i doif a[j]>a[j+1]then a[j]與 a[j+1]對換;其中n為正整數(shù),則最后一行的語句頻度在最壞的情況下是()a.O(n) b.O(nlogn) c.O(n的三次方) D.O(n的二次方)不會打上標,高手們將就一下哦~2.“程序一定是算法”,這句話問題出在哪里?3.語句頻度和時間復雜度有什么關(guān)系?
1 回答

九州編程
TA貢獻1785條經(jīng)驗 獲得超4個贊
1、選擇D,因為最壞情況是每次判斷a[j]>a[j+1]都成立,由于有兩層循環(huán),總次數(shù)為(n-1)+(n-2)+...+2+1=n(n-1)/2=O(n^2)。
2、程序是一組命令的集合,算法是設(shè)計好的可以解決問題的一組規(guī)則,二者不是一種東西。
3、一個算法中的語句執(zhí)行次數(shù)稱為語句頻度或時間頻度,記為T(n)。n稱為問題的規(guī)模,當n不斷變化時,時間頻度T(n)也會不斷變化。但有時我們想知道它變化時呈現(xiàn)什么規(guī)律。為此,我們引入時間復雜度概念。一般情況下,算法中基本操作重復執(zhí)行的次數(shù)是問題規(guī)模n的某個函數(shù),用T(n)表示,若有某個輔助函數(shù)f(n),使得當n趨近于無窮大時,T(n)/f(n)的極限值為不等于零的常數(shù),則稱f(n)是T(n)的同數(shù)量級函數(shù)。記作T(n)=O(f(n)),稱O(f(n)) 為算法的漸進時間復雜度,簡稱時間復雜度。
添加回答
舉報
0/150
提交
取消