C 標準庫裡面有關於排序的模板函式,為什麼自己還要寫排序演算法?

時間 2021-06-01 14:43:46

1樓:

我說個理由吧。可以理解為,題主這麼問,是說演算法導論裡都寫了演算法,為啥還要我們背leetcode,這個的確是有爭議的問題,上次寫個紅黑球,我忘了怎麼寫了,看算導自己寫。

是不是有時候會手寫演算法,是的,有時候真的不僅僅算導那些演算法,有時候需要並算呀,要用特殊晶元排序呀。還有時候確實快排不合適,已經少量亂序。

2樓:

你的理解說明你是乙個學生,現實程式設計時總會遇到不標準的問題,所以沒有標準的解決方案,否則就不需要程式設計師了,大牛寫個庫就可以解決所有?不存在的。任何庫都是如此。

3樓:王二狗

跑個題。

對於我這種學生來講。看懂之外感覺還是要自己來寫一遍的好。理解歸理解自己沒寫過的東西我不認為我會。畢竟我不是來背文件的。

4樓:

我覺得可能是因為標準庫為了普適性,犧牲了一部分需求/效能。

面對不同的狀況,不同的需求,可能有的情況那一點效能、或者特性的損失可以忽略,有的不行。

5樓:徐辰

乙個最常見的案例就是用heap取TopN,標準庫里雖然有heap,但是沒有push_overflow,siftup,siftdown這些操作,還是得自己寫。

6樓:d41d8c

姑且把問題理解成「什麼時候標準庫的排序不適用」。

我能想到的有幾種情況:

出於效率的嚴格要求,必須要用非比較排序(如基數排序等)要排序的物件的swap操作是壞掉的

要排序的鍵值是計算得出的,雖然可以自定義比較器但很難避免在比較器裡重複計算

排序過程中要混入其他操作

C語言 關於C裡面陣列批量初始化

蛋蛋的蛋 int a 1000 補充一下,類似的方式可以讓前500個元素等於1,後500個等於0,手機打字,不方便,有心人自己嘗試吧, 向晨 c標準庫有個limits.h的標頭檔案,裡面有你所使用機器的int char等型別變數的位元組長度和大小限制相關的巨集,可以用這些巨集來知道乙個int對應幾個...

家居裝修方面有關於夜晚起夜燈的設計嗎?

孔茂 Weelight是通過自身研發技術,在床腿的布置智慧型感測器探頭,探頭可以覆蓋臥室內的人體活動區域,在120度掃瞄角度 5公尺探測距離的範圍內,探頭會同時對人體活動和光線進行檢測,只有偵測到黑暗環境中的人體活動時才會控制燈帶漸漸地亮起。如果環境光線強度夠,例如白天或者夜晚開啟主燈的環境下,燈帶...

關於C 裡面的delete問題,這樣是否會造成記憶體洩露??

Metre 不贊同樓上.我的理解是 只是理解,其實深層的東西我也不了解 int是資料型別,new的是連續的記憶體塊,而類物件去new是不一樣的後者是需要呼叫物件的析構函式的 可以舉乙個例子 include class Data1 Data1 class Data2 Data2 intmain 可以正...