研究python算法的感悟(上)

? ? ?? 對pyhon算法的研究使我熱愛這門編程語言琳骡,在我的計(jì)算機(jī)生涯中用過很多種語言弯淘,但對于快速構(gòu)造原型的能力颜武,沒有任何一種能夠和python相比您觉。

??? 假設(shè)你有一個(gè)含有重復(fù)子項(xiàng)的序列拙寡,你想以最快的速度消除其中的重復(fù),同時(shí)還不用了解許多關(guān)于序列中的元素屬性信息琳水。另外肆糕,你并不關(guān)心最后序列中的元素順序。面對這樣的一個(gè)問題在孝,在python算法中應(yīng)該如何處理呢诚啃?

??? 首先,在一個(gè)序列中消除重復(fù)的最快速方法取決于序列元素對一些微妙特性私沮。例如始赎,它們是否是可哈希的,它們是否支持比較仔燕。我們可以使用unique函數(shù)嘗試三種方式造垛,從最快的到最慢的,并讓運(yùn)行時(shí)異常來決定最適合此序列的方法晰搀。

???? 要獲得最快的速度五辽,序列中所有元素都必須支持哈希,如果它們是可哈希的外恕,則unique函數(shù)的工作時(shí)間是線性的杆逗,即直接正比于輸入序列中元素的數(shù)目。

???? 如果發(fā)現(xiàn)對元素進(jìn)行哈希操作是不可能的鳞疲,下一個(gè)最好的情況是序列中的元素都支持排序罪郊。如果排序也是不可能的,那么序列元素至少要支持相等測試建丧,否則重復(fù)多概念對于它們是沒有意義的排龄。

??? 我們再來看一下實(shí)現(xiàn)FIFO容器波势。就是需要一個(gè)支持插入和刪除元素的容器翎朱,而且第一個(gè)插入到元素也是第一個(gè)被刪除到橄维,即先進(jìn)先出隊(duì)列。

? ? 我們可以做出一個(gè)python風(fēng)格的實(shí)現(xiàn)拴曲,通過兩個(gè)單項(xiàng)鏈表争舞,用前端鏈表和后端鏈表的方法創(chuàng)建一個(gè)FIFO。代碼如下:

??? class Fifo (list):

??? def_ _init_ _(self):

???????????? self.back =[??? ]

???????????? self.append = self.back.append

??????? def? pop (self):

???????????????? if not self:

??????????????????????? self back.reverse(? )

?????????????????????? self[ : ] = self.back

?????????????????????? del self.back[ : ]

???????????????? reture super (Fifo ,self). pop(? )

這就是在python中fifo容器的實(shí)現(xiàn)方法之一澈灼。

未完待續(xù)*\(^o^)/*

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末竞川,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子叁熔,更是在濱河造成了極大的恐慌委乌,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件荣回,死亡現(xiàn)場離奇詭異遭贸,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)心软,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進(jìn)店門壕吹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人删铃,你說我怎么就攤上這事耳贬。” “怎么了猎唁?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵咒劲,是天一觀的道長。 經(jīng)常有香客問我胖秒,道長缎患,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任阎肝,我火速辦了婚禮挤渔,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘风题。我一直安慰自己判导,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布沛硅。 她就那樣靜靜地躺著眼刃,像睡著了一般。 火紅的嫁衣襯著肌膚如雪摇肌。 梳的紋絲不亂的頭發(fā)上擂红,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天,我揣著相機(jī)與錄音围小,去河邊找鬼昵骤。 笑死树碱,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的变秦。 我是一名探鬼主播成榜,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蹦玫!你這毒婦竟也來了赎婚?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤樱溉,失蹤者是張志新(化名)和其女友劉穎挣输,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體福贞,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡歧焦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了肚医。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片绢馍。...
    茶點(diǎn)故事閱讀 39,696評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖肠套,靈堂內(nèi)的尸體忽然破棺而出舰涌,到底是詐尸還是另有隱情,我是刑警寧澤你稚,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布瓷耙,位于F島的核電站,受9級特大地震影響刁赖,放射性物質(zhì)發(fā)生泄漏搁痛。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一宇弛、第九天 我趴在偏房一處隱蔽的房頂上張望鸡典。 院中可真熱鬧,春花似錦枪芒、人聲如沸彻况。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽纽甘。三九已至,卻和暖如春抽碌,著一層夾襖步出監(jiān)牢的瞬間悍赢,已是汗流浹背举农。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工会宪, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留虐骑,地道東北人咬荷。 一個(gè)月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓勒葱,卻偏偏與公主長得像篷扩,于是被迫代替她去往敵國和親院究。 傳聞我的和親對象是個(gè)殘疾皇子掌栅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內(nèi)容

  • 容器的概念所謂STL容器祷舀,即是將最常運(yùn)用的一些數(shù)據(jù)結(jié)構(gòu)(data structures)實(shí)現(xiàn)出來瀑梗。容器是指容納特定...
    飯飯H閱讀 381評論 0 0
  • 謹(jǐn)以此作獻(xiàn)給:全天下那一小部分忘恩負(fù)義,以怨報(bào)德的卑鄙無恥小人等渣裳扯,祝他(她)們早日洗心革面抛丽、重新做人、回頭是岸饰豺!...
    獨(dú)孤一鳴閱讀 821評論 15 22
  • 曾經(jīng)幻想的大學(xué)亿鲜,交通便利卻又獨(dú)有一份清幽,現(xiàn)實(shí)中的大學(xué)冤吨,遠(yuǎn)離市區(qū)且日日喧囂不斷蒿柳;曾經(jīng)幻想的大學(xué),建筑拔地而起且...
    欲把年華錯(cuò)落成詩閱讀 514評論 0 1
  • 家和萬事興曾是我日記本里最大的愿望漩蟆。 從小垒探,我一直覺得我的家是最糟糕的。 爺爺奶奶因?yàn)楦赣H心眼耿直不會辦事不喜父親...
    心如采薇閱讀 369評論 1 3