單鏈表時(shí)間復(fù)雜度總結(jié) 建立一個(gè)有序單鏈表的時(shí)間復(fù)雜度是多少,謝謝?
建立一個(gè)有序單鏈表的時(shí)間復(fù)雜度是多少,謝謝?快速排序的時(shí)間和空間復(fù)雜度較低時(shí)間復(fù)雜度O(nlog2n)空間復(fù)雜度O(1)堆排序的時(shí)間復(fù)雜度最低,但空間復(fù)雜度會(huì)增加O(logn)我想解釋的另一點(diǎn)是,各種
建立一個(gè)有序單鏈表的時(shí)間復(fù)雜度是多少,謝謝?
快速排序的時(shí)間和空間復(fù)雜度較低
時(shí)間復(fù)雜度O(nlog2n)空間復(fù)雜度O(1)
堆排序的時(shí)間復(fù)雜度最低,但空間復(fù)雜度會(huì)增加O(logn)
我想解釋的另一點(diǎn)是,各種算法追求低時(shí)間復(fù)雜度必然導(dǎo)致空間的上升復(fù)雜度,對(duì)低空間復(fù)雜度的追求必然導(dǎo)致時(shí)間復(fù)雜度的上升
也就是說,沒有哪個(gè)算法的時(shí)間復(fù)雜度和空間復(fù)雜度最低,就像魚與熊掌不能同時(shí)擁有一樣
因?yàn)樗且粋€(gè)單鏈表,我建議您使用快速排序代碼以使其更簡單。如果你需要的話我也可以提供
復(fù)雜度問題建立一個(gè)有序單鏈表的時(shí)間復(fù)雜度是多少?
在一個(gè)具有n個(gè)結(jié)點(diǎn)的有序單鏈表中插入一個(gè)新結(jié)點(diǎn)并仍然保持有序的時(shí)間復(fù)雜度是為什么是O(n)?
O(nlogn)。雖然并不是所有的高級(jí)排序算法都適用于單鏈表,但它們也有部分的適用性,例如合并排序、Hill排序以及快速排序的具體實(shí)現(xiàn)。
即使您不考慮所有這些算法,還有另一個(gè)簡單而粗糙的方法:
將鏈表復(fù)制到數(shù)組中
對(duì)數(shù)組進(jìn)行排序
將數(shù)組還原到鏈表中
數(shù)據(jù)結(jié)構(gòu)題目在一個(gè)具有n個(gè)結(jié)點(diǎn)的有序單鏈表中手插入一個(gè)新結(jié)點(diǎn)并依保持為有序單鏈表的時(shí)間復(fù)雜度為?
]呵呵,如果您想找到它,當(dāng)然是O(n)
但是在實(shí)際應(yīng)用中,我們通常知道一個(gè)節(jié)點(diǎn),比如節(jié)點(diǎn)P,在它后面插入一個(gè)節(jié)點(diǎn)Q,這就是常數(shù)階的復(fù)雜性
Q->next=P->next
P->next=Q