全排列的算法(二)——递增进位法

本文介绍了全排列的算法,特别是递增进位法。通过对排列的逆序序列和逆序数的理解,详细阐述如何从逆序序列生成排列,并提供了一段递增进位算法的C++代码实现,用于生成集合{1,2,...,n}的所有排列。" 53319526,1376846,CentOS7.2中Elasticsearch-Kibana-Zookeeper-Kafka集群部署详解,"['Elasticsearch', 'Kibana', 'Zookeeper', 'Kafka', '集群部署']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2.递增进位法

集合{12、……n-1n}的全排列中,只有原始排列12……n的各个元素的顺序是自然顺序,其余排列的元素的顺序都要改变。为了说明元素间顺序的改变,引入了排列的逆序的概念,它在行列式理论中起着重要的作用。

设集合{12,……,n}的一个排列是 p0p1……pn-1,如果对于任意的k和l(0kln-1),当k<l 有 pk>pl,则称数对(pk,pl)是排列 p0p1……pn-1 的一个逆序对。在排列 p0p1……pn-1 中,在元素 pj 左面比它大的的元素的个数为 qj( j=0l……,n-1),那么,称 q0,q1,……,qn-1为这个排列的逆序序列,而数 q0+q1+……+qn-1 叫做这个排列的逆序数。

例如,排列48625137中,1前面比它大的数有5个,2前面比它大的数有3个,……,因此,这个排列的的逆序序列是53402110,它的逆序数则是5+3+4+0+2+1+1+0=16

因为在集合

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值