PTT推薦

Re: [問卦] 學排序演算法要幹嘛?

看板Gossiping標題Re: [問卦] 學排序演算法要幹嘛?作者
arrenwu
(不是綿芽的錯)
時間推噓10 推:10 噓:0 →:13

※ 引述《anger312143 (anger)》之銘言:
: 標題: [問卦] 學排序演算法要幹嘛?
: 時間: Thu Apr 15 04:27:44 2021
:
: 如題
: 現在各大程式語言
: 幾乎每款都有內建排序套件
: 直接拉套件就好了
: 為啥還要學排序演算法
: 是要養教授還是怎樣
: 有咪有卦?
學排序演算法主要是讓你了解各種演算法的特性。
在不同的場合你會遇到的限制不一樣。

比如給你一個LinkedList,且不能使用太多的額外空間進行排序,
那多半就要採用 merge sort 這類型的演算法

從你說的「每款都有內建排序套件」,聽起來像在抱怨為什麼要學 Quick Sort?
確實 QuickSort 做法看起來是比較難懂,而且各大程式語言都有實現這做法的內建函式庫

但是,你上演算法,總是會學到 Quick Select 的對吧?
也就是要怎麼樣在一個長度為n的陣列裡面用平均o(n)的時間找到第k大的東西,(1<=k<=n)其他語言我不太確定,但是Java 的 Arrays 裡面就沒有內建這機能
Link: https://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html

那既然你都要學 Quick Select 了,沒啥道理不學Quick Sort呀 做法根本就一樣


其實我猜會有這種「學這個幹嘛」的想法,通常都是因為遇到阻礙有點累。
這時候我覺得比較好的做法是聽角卷綿芽唱歌
https://youtu.be/AR6O_yi2bx8?t=2406 (Watame Ch. 角巻わため)

https://twitter.com/blueta9810/status/1378966179029508097
https://pbs.twimg.com/media/EyMRfxeVoAI98FD.jpg

圖https://pbs.twimg.com/media/EyMRfxeVoAI98FD.jpg, Re: [問卦] 學排序演算法要幹嘛?

這可以有效提升緩解精神疲勞、提升學習的士氣喔!

: --
: ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.216.31.37 (臺灣)
: ※ 文章網址: https://www.ptt.cc/Gossiping/M.1618432066.A.C6F
: 推 Nigger5566: 你適合學拍桑 04/15 04:28: 推 Ericz7000: 真的~ O(nlogn) 和 O(n^2) 不是差不多嗎? 04/15 04:31
o(nlogn) 和 o(n^2) 差多了,跟 o(nlogn) 差不多的是 o(n)

--
https://pbs.twimg.com/media/EwSsY_jVEAkCEgJ.jpg

圖https://pbs.twimg.com/media/EwSsY_jVEAkCEgJ.jpg, Re: [問卦] 學排序演算法要幹嘛?
角卷綿芽80萬訂閱紀念靠枕開始販賣! (開放購買至 4/19 下午 4:59)
購買連結: https://hololive.booth.pm/items/2808989

--

※ PTT留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 98.234.190.206 (美國)
※ 文章網址: https://www.ptt.cc/Gossiping/M.1618434486.A.422

YandereLove04/15 05:10watame我的

Ericz700004/15 05:12露西婭我的

orze0404/15 05:13那就不要用陣列啊

ericrobin04/15 05:16O(nlogn)在n很大時 跟O(n)差得更遠吧= =

不會吧? 左邊ratio是 n/logn ,右邊是 logn ,怎麼看都是左邊比較爆啊

orze0404/15 05:19總比n^2好

ericrobin04/15 05:31不確定有沒有畫錯@@

我不太確定你想要用這圖表達什麼

https://i.imgur.com/J0EfizK.jpg

圖https://i.imgur.com/J0EfizK.jpg, Re: [問卦] 學排序演算法要幹嘛?

但你可以隨便代入一個大數字,比如 n = 2^32 = 4294967296 比較一下 n = 4294967296 nlogn = 137438953472 n^2 = 18446744073709551616

goldhan04/15 05:33還在給我聊什麼天啊,我要的功能趕快加上去

orze0404/15 05:41n=10億,取log也才30

orze0404/15 05:42就30倍而已,用n^2直接炸裂

這件事情反映的其實是 For any p > 0, n^p/logn → ∞ as n → ∞

jimmy568004/15 05:44上色失敗 另外我比較愛聽星街、鯊鯊、百鬼和小粥 >_<

fixed

flash540804/15 05:51bogosort 拼人品就好了 學這麼多幹嘛

sorting 了不起也就花一個星期啊 XDDD

ericrobin04/15 05:53恩..應該就只是說nlogn很大時, 斜率也遠大於1

NTHUlagka04/15 06:06bucket sort or radiz sort在知道值域也蠻好用的

flash540804/15 06:17不用額外空間的merge sort 怎麼寫

所以我使用"不能用太多額外空間"這個比較委婉的講法

Moebuta04/15 06:48哦!好棒哦!

Moebuta04/15 06:50最近我看到youtube有hololive的real face不知道是不是真

Moebuta04/15 06:50

TheBeast04/15 07:06mergeSort的本質就是DFS stack怎麼會不用空間

o(logn) 跟 o(n) 額外空間總還是有差別嘛

※ 編輯: arrenwu (98.234.190.206 美國), 04/15/2021 07:08:40

iampig95175304/15 07:37幹 露西婭不能輸

iampig95175304/15 07:37https://youtu.be/KOP4qDReSqE

iampig95175304/15 07:37台パン女帝

jeeyi34504/15 10:42笑了