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

看板Gossiping作者 (不是綿芽的錯)時間3年前 (2021/04/15 05:08), 3年前編輯推噓10(10013)
留言23則, 12人參與, 3年前最新討論串2/4 (看更多)
※ 引述《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
這可以有效提升緩解精神疲勞、提升學習的士氣喔! : -- : ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.216.31.37 (臺灣) : ※ 文章網址: https://www.ptt.cc/bbs/Gossiping/M.1618432066.A.C6F.html : 推 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
角卷綿芽80萬訂閱紀念靠枕開始販賣! (開放購買至 4/19 下午 4:59) 購買連結: https://hololive.booth.pm/items/2808989 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 98.234.190.206 (美國) ※ 文章網址: https://www.ptt.cc/bbs/Gossiping/M.1618434486.A.422.html

04/15 05:10, 3年前 , 1F
watame我的
04/15 05:10, 1F

04/15 05:12, 3年前 , 2F
露西婭我的
04/15 05:12, 2F

04/15 05:13, 3年前 , 3F
那就不要用陣列啊
04/15 05:13, 3F

04/15 05:16, 3年前 , 4F
O(nlogn)在n很大時 跟O(n)差得更遠吧= =
04/15 05:16, 4F
不會吧? 左邊ratio是 n/logn ,右邊是 logn ,怎麼看都是左邊比較爆啊

04/15 05:19, 3年前 , 5F
總比n^2好
04/15 05:19, 5F

04/15 05:30, 3年前 , 6F

04/15 05:31, 3年前 , 7F
不確定有沒有畫錯@@
04/15 05:31, 7F
我不太確定你想要用這圖表達什麼 https://i.imgur.com/J0EfizK.jpg
但你可以隨便代入一個大數字,比如 n = 2^32 = 4294967296 比較一下 n = 4294967296 nlogn = 137438953472 n^2 = 18446744073709551616

04/15 05:33, 3年前 , 8F
還在給我聊什麼天啊,我要的功能趕快加上去
04/15 05:33, 8F

04/15 05:41, 3年前 , 9F
n=10億,取log也才30
04/15 05:41, 9F

04/15 05:42, 3年前 , 10F
就30倍而已,用n^2直接炸裂
04/15 05:42, 10F
這件事情反映的其實是 For any p > 0, n^p/logn → ∞ as n → ∞

04/15 05:44, 3年前 , 11F
上色失敗 另外我比較愛聽星街、鯊鯊、百鬼和小粥 >_<
04/15 05:44, 11F
fixed

04/15 05:51, 3年前 , 12F
bogosort 拼人品就好了 學這麼多幹嘛
04/15 05:51, 12F
sorting 了不起也就花一個星期啊 XDDD

04/15 05:53, 3年前 , 13F
恩..應該就只是說nlogn很大時, 斜率也遠大於1
04/15 05:53, 13F

04/15 06:06, 3年前 , 14F
bucket sort or radiz sort在知道值域也蠻好用的
04/15 06:06, 14F

04/15 06:17, 3年前 , 15F
不用額外空間的merge sort 怎麼寫
04/15 06:17, 15F
所以我使用"不能用太多額外空間"這個比較委婉的講法

04/15 06:48, 3年前 , 16F
哦!好棒哦!
04/15 06:48, 16F

04/15 06:50, 3年前 , 17F
最近我看到youtube有hololive的real face不知道是不是真
04/15 06:50, 17F

04/15 06:50, 3年前 , 18F
04/15 06:50, 18F

04/15 07:06, 3年前 , 19F
mergeSort的本質就是DFS stack怎麼會不用空間
04/15 07:06, 19F
o(logn) 跟 o(n) 額外空間總還是有差別嘛 ※ 編輯: arrenwu (98.234.190.206 美國), 04/15/2021 07:08:40

04/15 07:37, 3年前 , 20F
幹 露西婭不能輸
04/15 07:37, 20F

04/15 07:37, 3年前 , 21F

04/15 07:37, 3年前 , 22F
台パン女帝
04/15 07:37, 22F

04/15 10:42, 3年前 , 23F
笑了
04/15 10:42, 23F
文章代碼(AID): #1WTrcsGY (Gossiping)
文章代碼(AID): #1WTrcsGY (Gossiping)