首頁 > 後端開發 > C++ > 產生排列和組合最快的 C 庫是什麼?

產生排列和組合最快的 C 庫是什麼?

DDD
發布: 2024-12-01 06:53:10
原創
246 人瀏覽過

What's the Fastest C   Library for Generating Permutations and Combinations?

C 語言的排列組合庫函數

問題:

什麼是最常使用C 庫從n 個集合中產生k 個元素的所有組合和排列元素?

答案:

幾個 C 函式庫提供了計算排列和組合的函數。然而,根據Charles Bailey 進行的分析,以下選項脫穎而出:

  • 解決方案C: 該演算法源自N2639 論文,執行高效,訪問每個組合在85.3531 ns 內。
  • 解D:參考解決方案中的for_each_combination 函數性能優異,訪問每個組合僅需6.62765 ns,比解決方案C 快12 倍以上,比解決方案B 快9000 倍以上。

注意:

提供的基準測試是在2.8 GHz Intel Core 上進行的i5 使用clang -O3 並測量了生成一次5 個100 個元素的排列的性能(導致超過7500 萬個總組合)。

雖然解決方案 C 和 D 與解決方案 A 有相似之處,但它們避免了解決方案 A 中發現無限循環問題,結果準確。解決方案 D 是 Charles Bailey 已知的訪問所有組合的最有效演算法。

以上是產生排列和組合最快的 C 庫是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板