排序是什么鬼

算法課最頭疼的就是什麽遞歸叠代、分治、排序這些魑魅魍魎。以致於寫推薦信找算法老師被問算法課考了多少分都羞於啟齒。畢竟人家不識妳,憑什麽給妳簽那個名字,而相反自己卻只是壹時興起,想著難度較大專業性強的算法課的老師的推薦信要靠譜些,實際上後來發現這只是無知惹的惑。靠不靠譜,還是要靠發論文的質量和數量及學界影響,當然在「學渣」的世界中攀不起院長,做不了項目實習生,所以必須曲線突圍。好在這個世界不止有一條路,如今卻又回到原點。補補當時落下的課目。

不就是數大數小的排序麼,小學就會了,只不過爲了計算的方便,非得搞出來那麼多名堂倒把人嚇退了,還要寫出來算法,計算其時間複雜性如此種種。其時算法主要是思路,有了思路,還怕寫不出程序。那我們就一一看來。

輸入是一個數組,裏面的數雜七雜八,算法的目的要把他們排成有序的數列。

直接排序(即插入排序,insertion sort)好比整理手中的撲克牌。第一張牌在手,已然有序,第二張抓上來的牌放在合適的位置,以後每次抓上來一張牌都插在合適的位置,這樣每時每刻都是有序的,直到牌抓完序也擺好。這些牌在手裏插起來很方便,只需「露開一個空檔」。但對於數組,這樣需要做的移動會比較多。

直接排序的最佳情形,就好比抓到的牌的順序是A23456789JQK。這樣初始有序,直接排序就省去插入環節,比較次數爲n(1+n)/2

二分插入排序 (binary sort)規避直接插入的盲目尋找,從中間一分爲二,第i個元素先跟前i-1個元素的中間元素比,小的話,就再同(i-1)/2個元素的中間元素比,直到找到合適的插入位置。

冒泡排序 (bubble sort)解決的是每次插入帶來的數組內移動的開銷。想法相對簡單,每次比較兩個元素,如果排序錯誤,就互相交換,直到沒有交換發生爲止。

快速排序 (quick sort)對冒泡有所改進,兵分兩路(i=0, j=n-1),把首數(a[0])作爲關鍵數,從尾部倒着找比它小的,最先找到的比它小的跟數組第i個(此時i=0)交換,再從頭部順着找比它大的,最先找到的跟第j個交換,然後j--, i++,重複此步驟直到i=j。上述是一趟排序,並不能確保這樣就排好序,需要將整個過程重複(即很多趟这样的排序)直到沒有交換發生爲止。這裏面的想法是把整個數組始終分成大數一組和小數一組,然後通過不斷比較將小數排好,大數排好。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容

  • 为何叫做 shell ? shell prompt(PS1) 与 Carriage Return(CR) 的关系?...
    Zero___阅读 3,138评论 3 49
  • 程序員創業白皮書 作者:Paul Graham Paul Graham是程序員,專欄作家。他在1995年創建了第一...
    刘立山John阅读 1,847评论 0 20
  • 仙剑四玩到琴姬那部分,有种说不出的憋闷,仿佛胸口放进一块大石,让人喘不过气。 琴姬是一个奇女子,人美,琴技高超,性...
    清净墨莲阅读 347评论 1 1
  • 那条回乡的路,已经被水泥石子硬化。从远处的山顶望去,蜿蜿蜒蜒,沿着地垄、跳过小溪、爬上山坡,如一条绵延的灰色丝带一...
    凤儿有约阅读 229评论 0 8