1樓:匿名使用者
程式執行的效率跟演算法有關,而一個演算法的優劣可以用空間複雜度與時間複雜度來衡量。
1、空間複雜度是指演算法在計算機內執行時所需儲存空間的度量
2、一般情況下,演算法中基本操作重複執行的次數是問題規模n的某個函式,用t(n)表示,若有某個輔助函式f(n),使得當n趨近於無窮大時,t(n)/f(n)的極限值為不等於零的常數,則稱f(n)是t(n)的同數量級函式。記作t(n)=o(f(n)),稱o(f(n)) 為演算法的漸進時間複雜度,簡稱時間複雜度。
在各種不同演算法中,若演算法中語句執行次數為一個常數,則時間複雜度為o(1),另外,在時間頻度不相同時,時間複雜度有可能相同,如t(n)=n2+3n+4與t(n)=4n2+2n+1它們的頻度不同,但時間複雜度相同,都為o(n2)。
按數量級遞增排列,常見的時間複雜度有:
常數階o(1),對數階o(log2n),線性階o(n),線性對數階o(nlog2n),平方階o(n^2),立方階o(n^3),...,
k次方階o(n^k),指數階o(2^n)。隨著問題規模n的不斷增大,上述時間複雜度不斷增大,演算法的執行效率越低。
2樓:匿名使用者
選第一個。
其實三個都有關係。但是後兩個說「只」就不對。
主要和cpu速度,程式的迴圈邏輯和選擇邏輯的關係,程式的資料結構,資料量的使用。
3樓:
程式執行的效率 除與資料的儲存結構密切相關外,還與資料的邏輯結構有關,以及選取什麼樣的演算法有關。
個人認為與 資料結構(邏輯結構、儲存結構)與演算法有密切關係。
都說程式執行的效率跟演算法有關,究竟什麼是計算機的演算法呢?怎麼理解的?怎麼使用?
4樓:匿名使用者
5樓:匿名使用者
演算法演算法
顧名思義
就是計算的方法
比如2*2*2*2*2*2*2*2*2
你可以一個一個的乘
也可以先算2*2 = 4 (去了
2個2)
然後4*4=16(去了4個2)
然後16*16=256(去了8個2)
最後還剩下一個2
再就是256*2=512就可以了
這就是兩種演算法
給計算機算的話,第一種計算機要算8次乘法
第二種計算機只用算4次乘法
明顯第二種要快得多
這就是演算法
您懂了嗎?
假如是2^n的話,第一種演算法要算n次
第二種演算法只算log2(n)次
如果算一次要0.001秒的話(世界上第一臺計算機埃尼亞克的速度吧……)
那當n=100000000000的話
第一種計算方法要100000000秒的時間才能求出結果……也就是大概三年多……
第二種計算方法卻絕對連1秒都用不到
這就是演算法不同效率不同的一個簡單的例子
還有這個例子一點也不誇張
你學了演算法就知道了
特別是學了搜尋……
演算法的執行效率和資料記憶體有關係嗎?
6樓:楓默·瞴
嚴格的說演算法的執行效率跟演算法本身的效率和計算機的效率有關。
計算機的效率包括cpu和記憶體的速度。這是你執行演算法時候實實在在花費的時間長短。
撇開計算機的效率,演算法本身的效率跟演算法本身和資料有關。
演算法的執行效率與資料的儲存結構有關嗎。
7樓:匿名使用者
你好,演算法的執行效率與資料的儲存結構是有很大關係的,例如在陣列中的插入刪除演算法的o(n)=n,而在連結串列中插入刪除演算法的o(n)為常數
純手打,請給分,謝謝!
C程式的執行是從什麼開始到什麼結束的
一個c語言的執行是從本程式的main函式開始,到main函式結束,但需要注意的是,也是有特殊情況的,若是 現了exit函式,則直接結束程式。c語言具有各種各樣的資料型別,並引入了指標概念,可使程式效率更高,另外c語言也具有強大的圖形功能,支援多種顯示器和驅動器。而且計算功能 邏輯判斷功能也比較強大,...
學習c語言,程式的執行結果不知為什麼
巨集定義出了問題,define s x x x define f x x x 是不正確的,應該改成 define s x x x define f x x x 要不進行 1000 s n j 1000 f n 的時候,是1000先除於x,再乘於x,那得到的值當然是1000了.因為你沒加括號。defi...
請詳細解釋如圖程式執行的過程(為什麼是這個結果),十分感謝
define n 4 定義巨集n,值為4 int bb n n bb為儲存地圖的4 4二維陣列 int i,j i和j為兩個計數的變數 for i 0 i n i 這句是行迴圈,每行都會迴圈一次,直到設定了n行 for j 0 j n i 這句是列迴圈,每列都會迴圈一次,直到設定了n列 i 0是最上...