簡體   English   中英

這里的大 O 表示法是什么,我該如何弄清楚?

[英]What is the big O notation here and how do I figure it out?

這個數組中有 1805 個元素。 我正在遍歷它們中的每一個並輸出 ID 並銷毀跟隨者。
我如何在這里找到大 O 符號?

更好更快的選擇是使用 followers.destroy_all 嗎?

followers.each { |f| puts f.id; f.destroy! }; 

當您查看destroy_all的源代碼時,您會注意到它基本上與您的示例相同。 它遍歷關系中的所有記錄並調用destroy它們中的每一個。 我希望它仍然比您的版本快一點,因為調用puts不是免費的。 但是兩個版本都是O(n)

如果可能的話,您可能想使用delete_all ,它不會將所有記錄加載到 memory 中,也不會在每個元素上調用destroy 相反,它會刪除與單個 SQL 查詢相關的所有記錄,這使得該方法比destroy_all更快。 但當然delete_all不會觸發回調,因此可能對您不起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM