[理工] 资结 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