資訊學競賽中學的演算法有多少在真正的程式設計中會用到 頻率如何?

時間 2021-05-09 12:57:46

1樓:OFFLINE

工作中經常用到樹形結構吧.

不過倒是沒怎麼用到演算法. 感覺是空間思維問題, 不是演算法問題.

例如要實現乙個System.Linq.IQueryProvider就挺難的.

2樓:hcahsror

說幾個我寫資料庫的時候用到的

歸併排序,在記憶體有限的情況下對大資料進行排序的時候,需要分成有序頁然後從磁碟裡面讀進來,然後再進行合併。

狀態壓縮,每乙個page都有若干個slot,每個slot都可以儲存一條tuple,因此每乙個page都有乙個類似於bitset一樣的header來表示每乙個slot是不是used

雜湊,在執行group by語句以及索引的時候都用得到,前者根據group by的條件開出不同的桶然後把對應的tuple放進去,後者就顧名思義,不過在有限記憶體的情況下一般使用extensible hashing或者linear hashing,這兩者在OI裡基本用不到

接上面幾條,在實現Join(假設條件為=)的時候一般人可能只會想到雙重迴圈,但是學過演算法競賽的可能就會想到先把兩表排序然後雙指標掃下來,或者hash到若干個區中,只要檢查一下hash值相等的是否滿足條件即可。總之,我們在OI中都在想辦法減少時間複雜度,在資料庫開發中就是儘量減少IOs,其實本質是差不多的

還是Join,在做查詢優化器的時候有個問題就是,在你多表Join的時候需要決定乙個最優順序使花銷最小,那麼我們就可以抽象成乙個很OI的問題,就是有多個節點,每次合併兩個節點,根據節點的規模會產生不同的花銷,求花銷最小的方案。這個我們就可以通過DP解決。具體來講,開始的狀態為全部都沒合併,然後一步一步推到全部合併的最優解

死鎖檢測,對於不同事務之間會有依賴關係,我們把事務看成點,依賴關係看作邊,最後檢查這個依賴關係形成的圖是不是DAG即可,就是拓撲排序找環

暫時只能想到這麼多了。。。

3樓:北南

我只想問,資訊學競賽中哪個演算法在真正的程式設計裡用不到啊?你不用,我用啊,就算我也不用,也有別人用。。。

所以說,使用頻率才是關鍵,但使用頻率取決於你的工作性質,不可一概而論,對於個人而言,他可以完全不懂演算法,但有些工作可能就不要他了。

4樓:henix

用 Aho-Corasick 演算法過濾敏感詞,詳見《大規模Web服務開發技術》第20課

可以看看 Chao Xu 大神的部落格 https://chaoxuprime.com/blog.html 和知乎專欄 https://

zhuanlan /p/33860176

在資訊學競賽中AC WA RE CE TLE MLE PE OLE分別是什麼意思?

王厚薄就是王厚博 AC 正確的答案 WA 錯誤答案 PC 部分正確 RE 執行時錯誤 CE 編譯錯誤 TLE 時間超過限制 MLE 記憶體超過限制 OLE 輸出超過限制 ILE 輸入超過限制 UKE 未知錯誤 PE 格式錯誤 JF Judged失敗 看我看我,絕對最全! yizr cnyali AC...

ACM,資訊學中的演算法在工程專案中的使用有哪些?學以致用的感覺會更踏實吧

比起crud的專案,還是遊戲用到的演算法多。若是從零開始實現,乙個極簡遊戲的都會涉及到大量的演算法。貝塞爾曲線,補間動畫,碰撞檢測,3d拾取,物理引擎,光線追蹤。涉及到ai更是不得了,數獨求解,自動掃雷,各種棋類等等,以及傳統ai演算法解決不了,而使用的機器學習等等 總的來說用得很少,但也有部分情況...

如何看待資訊學競賽中的學校殺制度?

PoPo QQQ 謝不邀我感覺這個政策確實是有弊有利。利在於給弱校的學生乙個 可能 這個 可能 在於,如果沒有這個政策,那麼弱校基本上是不搞或者是對付這門競賽,導致有心的學生沒有門,而有了這個政策之後弱校至少還會開設這門競賽,給有心的學生一條道路,儘管艱辛,但是還是提供了這個可能性 弊在於 關鍵是就...