1樓:匿名使用者
我來舉個例子說明
比如一種排序演算法的時間複雜度是 o(n),那麼執行時間就是正比於要素個數n,
另一種排序演算法的時間複雜度是o(n*logn),那麼執行時間就正比於n*logn
所以n足夠大的情況下,總是第一種演算法快.
但是,如果n不是很大,那麼具體的運算時間並不一定都是前一種演算法快,比如剛才的第一種演算法的實際速度是 100×n, 第二種演算法的實際速度是 2× n × logn,
n=100,就會是第二種演算法快
2樓:海岸餡
執行時間隨著輸入量增大而增大,複雜度越高,執行時間增加速度越快。
一般計算的時候認為計算機1s可以進行10^9次運算,那麼輸入數量當n=1000時,複雜度n^3的程式需要執行1s。而複雜度log n 的只需要極少的時間(不到1毫秒)
3樓:匿名使用者
演算法時間越複雜,執行時間也大
4樓:李莞朋順
計算機在完成一個任務的時候有兩個指標,時間和所有記憶體(也就是空間)。這兩者是負相關的。也就是說,當你設計一個特定程式時,你可以選擇使用更多的記憶體,這樣可以達到提高程式執行速度的目的,也就是減少程式執行時間。
另一方面,你也可以選擇使用較少的記憶體,這樣可以節省記憶體但同時程式執行速度會變慢,也就是說程式執行要花費更多的時間。簡言之,演算法中只有兩種策略,要麼以時間換空間,要麼以空間換時間。
直接回答問題就是空間複雜度高的演算法其時間複雜度低,反之亦然。
演算法的空間複雜度於時間複雜度的關係?
5樓:幽靈軍團
有「必定」的話不對。因為對一些特殊情況存在特例有高的時空複雜度或同時為低的時空複雜度。但對一般情況下給定儲存空間如給定65535k的記憶體但不限定時間時,就存在時間空間的負相關關係。
對於既不限定時間,也不限定空間的程式,演算法的時間複雜度和空間複雜度可以同時很大,也可以同時很小。如t(n)=o(n)且s(n)=o(1)的情況比如一個for(i=0;i 時間複雜度與空間複雜度有什麼關係 6樓:匿名使用者 時間複雜度與空間複雜度沒有必然聯絡。但是也有以空間換時間或時間換空間的,此時,它們就會有影響。像雜湊法,用更多的空間,但時間會小於o(n)。 7樓:蓴灬叔 時間複雜度,就是計算程式執行的時間,空間複雜度, 就是所佔的記憶體空間。 同一問題可用不同演算法解決,而一個演算法的質量優劣將影響到演算法乃至程式的效率。演算法分析的目的在於選擇合適演算法和改進演算法。 電腦科學中,演算法的時間複雜度是一個函式,它定量描述了該演算法的執行時間。這是一個關於代表演算法輸入值的字串的長度的函式。時間複雜度常用大o符號表述,不包括這個函式的低階項和首項係數。 使用這種方式時,時間複雜度可被稱為是漸近的,它考察當輸入值大小趨近無窮時的情況。 空間複雜度(space ***plexity)是對一個演算法在執行過程中臨時佔用儲存空間大小的量度,記做s(n)=o(f(n))。比如直接插入排序的時間複雜度是o(n^2),空間複雜度是o(1) 。而一般的遞迴演算法就要有o(n)的空間複雜度了,因為每次遞迴都要儲存返回資訊。 一個演算法的優劣主要從演算法的執行時間和所需要佔用的儲存空間兩個方面衡量。 8樓:匿名使用者 沒什麼關係,空進複雜度是你用了多少記憶體,時間複雜度是你用了多少時間 演算法的時間複雜度與空間複雜度有之間關係嗎 9樓:匿名使用者 時間複雜度 是演算法的執行時間 空間複雜度是 演算法需要的記憶體空間,兩者沒有必然聯絡。 演算法的時間複雜度是什麼? 10樓:北京理工大學出版社 執行一個演算法所耗費的時間,從理論上是不能算出來的,必須上機執行測試才能知道。但不可能也沒有必要對每個演算法都上機測試,只需知道哪個演算法花費的時間多,哪個演算法花費的時間少就可以了。一個演算法花費的時間與演算法中語句的執行次數成正比例,演算法中哪個語句的執行次數多,它花費的時間就多。 1.語句頻度在演算法中一個語句的執行次數稱為語句頻度或時間頻度,記為t(n)。 2)演算法的漸進時間複雜度一般情況下,演算法的執行時間t是問題規模n的函式,記作t(n)。要精確地表示演算法的執行時間函式常常是很困難的,即使能夠給出,也可能是個相當複雜的函式,函式的求解本身也是相當複雜的。為了客觀地反映一個演算法的執行時間,可以用演算法中基本語句的執行次數的數量級來度量演算法的工作量,稱作演算法的漸進時間複雜度,簡稱時間複雜度,通常用o來表示。 11樓:宇愛景宦鳥 時間複雜度o(n^2)因為包含兩重迴圈,次數約為輸入陣列大小的平方 12樓:堅持學習啊美驢 演算法的時間複雜度是指執行演算法所需要的計算工作量。 演算法的時間複雜度不等於演算法程式執行的具體時間。演算法程式執行的具體時間受到所使用的計算機、程式設計語言以及演算法實現過程中的許多細節的影響。而演算法的時間複雜度與這些因素無關。 演算法的計算工作量是用演算法所執行的基本運算次數來度量的。演算法所執行的基本運算次數與問題的規模有關。 在具體分析一個演算法的工作量時,在同一問題規模下,演算法所執行的基本運算次數還可能與特定的輸入有關。即輸入不同時演算法所執行的基本運算次數不同。 演算法的時間複雜度取決於什麼? 13樓:匿名使用者 我認為大多取決與問題的規模和演算法的優劣! 一般是計算迴圈的次數來覺得時間複雜度! 14樓:匿名使用者 從演算法中選取一種對於所研究的問題(或演算法型別)來說是基本操作的原操作,以基本操作重複執行的次數作為演算法時間複雜度的度量 15樓:嘟嘟嘟 輸出資料量,演算法的優劣,輸入資料量 16樓:匿名使用者 問題的規模,一般跟n有關呀。 17樓:許璞脫曜文 算選取種於所研究 問題(或算 型別)說 基本操作 原操作基本操作重複執行數作算 間複雜度度量 對於排序 演算法,平均時間複雜度 插入排序 o n 2 氣泡排序 o n 2 選擇排序 o n 2 快速排序 o n log n 堆排序 o n log n 歸併排序 o n log n 基數排序 o n 希爾排序 o n 1.25 有一個時間複雜度的排列順序,依次為 1 log2n n nlog2... 1 時間複雜度 1 時間頻度 一個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測試才能知道。但我們不可能也沒有必要對每個演算法都上機測試,只需知道哪個演算法花費的時間多,哪個演算法花費的時間少就可以了。並且一個演算法花費的時間與演算法中語句的執行次數成正比例,哪個演算法中語句執行次數... 演算法1是最壞情況執行n 2次,也就是o n 演算法2是執行次數是 lgn 1,也就是o lgn 演算法3是最壞情況執行 n 1次,這就是o n 其中,lg是以10為底的對數。是向下取整。如何計算一個演算法的時間複雜度 求解演算法的時間複雜度的具體步驟是 找出演算法中的基本語句 演算法中執行次數最多...以下哪個排序演算法的最壞時間複雜度是
時間複雜度的定義,C 中時間複雜度是什麼意思
請分析下面演算法的時間複雜度。希望可以給詳細分析計算過程