佇列,並非想象的那樣簡單

2021-09-01 08:34:23 字數 367 閱讀 2535

經過近兩年的時間,我終於寫完了這一章。

正如我在algoxy第一章描述的,queue並非想象的那樣簡單。尤其是提供乙個純函式式的佇列,並且滿足常數時間的頭部和尾部操作並不容易。

本章中,我們給出幾種不同的佇列的純函式式實現。

當然,用常見的imperative語言實現佇列很容易,尤其是使用雙向鍊錶。但是這是乙個overkill的解法,我們先用單向鍊錶實現乙個頭部尾部都是常數時間的佇列;然後我們給出乙個ring-buffer的實現;

接著我們給出乙個簡單的純函式式解法:它能達到amortized常數時間,但是worst case表現一般,接著我們給出乙個基於狀態機的real time queue, 最後我們給出乙個基於惰性求職的real time queue

大學不是想象的中那樣

從初中開始,就幻想上高中,因為要分科,以後就不會學文科了,上到高中又幻想大學,認為在大學了才能靜下心來搞軟體,可是通過這半年的學習,我個人感受是 大學不是想象中的那麼完美,他也是有缺陷的。一 對於專業課的要求上,學校並沒有投入多大的注意力,這估計跟我就讀的學校有關,是石油大學,使用的教材也只是印度最...

成長,真有你想象的那樣迫切?

一 當我年輕的時候,我的想象力從沒有受到過限制,我夢想改變這個世界。當我成熟以後,我發現我不能改變這個世界,我將目光縮短了些,決定只改變我的國家。當我進入暮年後,我發現我不能改變我的國家,我的最後願望僅僅是改變一下我的家庭。但是,這也不可能。當我躺在床上,行將就木時,我突然意識到 如果一開始我僅僅去...

程式設計師,不是你們想象的那樣

長久以來,大家經常對程式設計師帶有各種誤解,感覺這個職業的人簡直就是另類?本文我們不講程式設計技術不講演算法,就來一一解開大家對程式設計師的誤解吧。誤解一 程式設計師都不善言語。從早到晚都坐在電腦面前敲 找bug,一坐下來就像屁股長釘子一樣不知道起來,總是一副悶悶的樣子。這就是大多數人心中對程式設計...