[理工] 資結 permutation的時間複雜度

作者: q5332159 (chiu)   2017-10-15 10:28:22
https://i.imgur.com/I9pv4MU.jpg
做如圖的permutation程式的時間複雜度是O(n*n!)
這是怎麼算出來的?
O(n*n!)中的n是因為總共會進入第一個if n次嗎?
那n!是怎麼來的?
謝謝大家解答~~
作者: FRAXIS (喔喔)   2017-10-15 10:53:00
n! 是因為有 n! 個輸出, n 是因為每次輸出有 n 字元而且每個輸出都可以在 O(n) 的時間內找出來
作者: q5332159 (chiu)   2017-10-15 11:21:00
那我是不是寫錯了?應該是總共會進入第一個if n!次?><每個輸出都可以在 O(n) 的時間內找出來是因為else中的迴圈嗎?
作者: sarsman (DeNT15T♠)   2017-10-15 11:29:00
沒寫錯,進入第一個迴圈的話就只是print表格,頂多是O(n)O(n!)的部份是for中呼叫perm的次數
作者: q5332159 (chiu)   2017-10-15 19:41:00
了解~感謝大家

Links booklink

Contact Us: admin [ a t ] ucptt.com