全排列剖析:求n个数第k个排序----康托展开

本文介绍了康托展开的概念及其在解决全排列问题中的应用。通过公式阐述如何找到N个数的第K个排序,以及如何从已知排列反推其在全排列中的位置。以实例说明,利用康托展开可以实现O(n)的时间复杂度,避免了使用next_permutation导致的O(N^2)复杂度。
摘要由CSDN通过智能技术生成

康托展开的公式:(不用记,看形势就行,下面会有例子)

X=an*(n-1)!+an-1*(n-2)!+...+ai*(i-1)!+...+a2*1!+a1*0!

ai为整数,并且0<=ai<i(1<=i<=n)

适用范围:没有重复元素的全排列


第一类题:N个数的第k个排序,例子,1,2,3,4共有4!种排列,1234,1243,1324等等。按顺序应该是

1234

1243

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值