1-2全排列及其逆序数
行列式2
此排列当 n=4k, 4k+1 时为偶排列; 当 n=4k+2, 4k+3 时为奇排列. (3) (2k)1(2k–1)2(2k–2)3(2k–3) · (k–1)(k +1)k. · · · · 解: (2k) 1 (2k–1) 2 (2k–2) 3 (2k–3) · (k–1) (k+1) k (k–1) (k–1) k 3 0 1 1 2 2 3 于是排列(2k)1(2k–1)2(2k–2) · (k–1)(k +1)k的逆序数为: · · t = 0+1+1+2+2+ · +(k–1)+(k–1)+k · · k k 1 2 k k2. 2 此排列当 k 为偶数时为偶排列, 当 k为奇数时为 奇排列.
例2: 计算下列排列的逆序数, 并讨论其奇偶性. (1) 217986354. 解: 2 1 7 9 8 6 3 5 4 0 1 001 34 4 5 于是排列217986354的逆序数为: t = 0+1+0+0+1+3+4+4+5 = 18. 此排列为偶排列. (2) n(n–1)(n–2) · 21 · · · · 解: n (n–1) (n–2) · 2 1 2 (n–2) (n–1) 0 1 于是排列n(n–1)(n–2) · 21的逆序数为: · · nn 1 , t = 0+1+2+ · +(n–2)+(n–1) · · 2
方法2: 依次计算出排列中每个元素前面比它大的 数码个数并求和, 即算出排列中每个元素的逆序数, 则 所有元素的逆序数之总和即为所求排列的逆序数. 例1: 求排列32514的逆序数.
第二节 排列及其逆序数
32514
1 逆序数为3
故此排列的逆序数为3+1+0+1+0=5.
记做 (3 2 514) 5
排列的奇偶性 逆序数为奇数的排列称为奇排列; 逆序数为偶数的排列称为偶排列. 例如,在123组成的全排列中,有3个偶排列123, 231,312;有三个奇排列132,213,321 ❖一般说来,n 个数的全排列中,奇偶排列各占一半。
第二排列及其逆序数
1 全排列 2 排列的逆序数 3 逆序数的计算方法
问题 把 n 个不同的元素排成一列,共有几种不 同的排法?
定义1
把 n 个不同的元素排成一列,叫做这 n 个元素的全排列(简称排列).
n 个不同的元素的所有排列的种数,通 常用 Pn 表示.
例如 P3 3 2 1 6.
同理 Pn n (n 1) (n 2) 3 2 1 n!.
32514 5的前面没有比5大的数,其逆序数为0; 1的前面比1大的数有3个,故逆序数为3; 4的前面比4大的数有1个,故逆序数为1;
32514 01 031 于是排列32514的逆序数为
0 1 0 3 1 5. (从头开始法)
例2 计算下列排列的逆序数,并讨论它们的奇 偶性.
1 217986354
分别计算出排列中每个元素前面比它大的数码 个数之和,即从排列中第一个元素开始,依次 算出排列中每个元素的逆序数,这每个元素的 逆序数之总和即为所求排列的逆序数.(从“头” 开始法) 例1 求排列32514的逆序数.
解 在排列32514中,
3排在首位,逆序数为0;
2的前面比2大的数只有一个3,故逆序数为1;
我们规定各元素之间有一个标准次序, n 个 不同的自然数,规定由小到大为标准排列(自然 排列).
§2 全排列及其逆序数
一、概念的引入 二、全排列 三、排列逆序数 四、小结
一、概念的引入
引例 三个数字, 用1、2、3三个数字,可以组成多少个没 、 、 三个数字 有重复数字的三位数? 有重复数字的三位数?
共有 3 × 2 × 1 = 6 种.
上 例也 可表 述为 : 把 3个不 同的 元素 排成 一列 ,共 有几 种不 同的 排法 ?
4.计算排列逆序数的方法 4.计算排列逆序数的方法
即分别计算出排列中每个元素前面比它大的数 个数之和 例1 的逆序数. 求排列 32514 的逆序数
例2 计算下列排列的逆序数 (1)12345 (2)n ⋅(n -1)⋯ 2 ⋅1
四、小结
1 n 个不同的元素的所有排列种数为 n!. 排列具有奇偶性. 2 排列具有奇偶性. 3 计算排列逆序数的方法 计算排列逆序数的方法.
1 2 t s n
总数称为此排列的逆序数, 总数称为此排列的逆序数,记为 t(p1p 2 ⋯ p t ⋯ ps ⋯ pn ) 逆序数 此排列的逆序数为3. 例如 排列 321 中,此排列的逆序数为
3. 排列的奇偶性
逆序数为奇数的排列称为奇排列; 逆序数为奇数的排列称为奇排列; 奇排列 逆序数为偶数的排列称为偶排列 偶排列. 逆序数为偶数的排列称为偶排列.
问题: n 个不同的元素排成一列,共有几种不同的排法?
共有n!种 共有 种
二、全排列
个不同的元素排成一列, 定义 把 n 个不同的元素排成一列,叫做这 n 个 元素的全排列(或排列) 元素的全排列(或排列).
二、排列的逆序数
n 个不同的自然数,我们规定由小到大为标准次序 个不同的自然数,我们规定由小到大为标准次序 标准次序. 1. 定义 在一个排列 p1 p2 ⋯ pt ⋯ ps ⋯ pn 中, 若数 pt > ps , 则称这两个数组成一个逆序 则称这两个数组成一个逆序. 排列321 中, 例如 排列 32,31,21就构成逆序 就构成逆序 就构成
线性代数ppt课件
x1
b1a22 a11a22
a12b2 a12a21
x2
a11b2 a11a22
b1a21 a12a21
x1
b1a22 a11a22
a12b2 a12a21
x2
a11b2 a11a22
b1a21 a12a21
5
第一章 行列式
我们用符号
aa1211表aa示1222代数和a11a22a12a21
解: 1 3 … (2n-1) 2 4 … 2k… (2n)
D3x24x189x2x212x25x6
即x25x60
x2或x3
值得注意的是:四阶及四阶以上行列式没有像二、三阶 行列式那样的对角线法则
13
第一章 行列式 §1-2 全排列及其逆序数
[引例]用1、2、3三个数字 可以组成多少个没有重复数字的 三位数?
[解依] 次选定百位数、十位数、个位数。 百位数有3种选法 十位数有2种选法 个位数有1种选法 所以可以组成6个没有重复数字的三位数 这6个三位数是 123 132 213 231 312 321
十八世纪开始,行列式开始作为独立的数学概念被研究。 十九世纪以后,行列式理论进一步得到发展和完善。
3
第一章 行列式
莱布尼茨:历史上少见的通才,被誉为 十七世纪的亚里士多德。在数学上,他 和牛顿先后独立发明了微积分。在哲学 上,莱布尼茨的“乐观主义”最为著名 。 他对物理学的发展也做出了重大贡献 。
并称它为三阶行列式。
10
第一章 行列式
2、行列式中的相关术语
行列式的元素、行、列、主对角线、副对角线 3、三阶行列式的计算 (对角线法则或沙路法则 )
1-2行列式的定义
τ ( j1 j2 ⋯ jn−1 jn )= ∑ ( jk 后面比jk 小的数的个数 )
k =1
n −1
信息系 刘康泽
例4 (1)排列31425 的逆序数为: )排列31425 的逆序数为: τ(31425)=2+0+1+0+0=3 ; (31425)=2+0+1+0+0=3 (2)自然排列 1 2 3 • • • n 的逆序数是0 ; 的逆序数是 (3)排列 n (n –1) • • • 21 的逆序数为: 的逆序数为: n(n − 1) τ = (n − 1) + (n − 2) + ⋯ + 1 + 0 = 2 例5 求排列 ( 2k )1( 2k − 1) 2 ( 2k − 2 ) 3 ( 2k − 3)⋯ ( k + 1) k 的逆序数。 的逆序数。 解: (2k ) 1 (2k − 1) 2 (2k − 2 ) 3 (2k − 3 )⋯(k + 1) k
信息系 刘康泽
第1-2节 排列及行列式的定义
信息系 刘康泽 一、排列及其逆序数
1. n 级排列
由 排成的一个有序数组, 【定义】 n 个不同的数 1, 2,⋯ , n 排成的一个有序数组, 定义】 级全排列, 级排列。 称为一个 n 级全排列,简称 n 级排列。
例1 53214 45238176
1 2 3⋯ n n( n − 1) ⋯ 321
∑
j1 j2 ⋯ jn
表示对 表示对所有
信息系 刘康泽
【注】 1、以 aij 作为元素的 n 阶行列式有时简记为 det( aij ) 。 、 2、行列式表示一个特定的数,它是n行n列的表中 、行列式表示一个特定的数,它是 行 列的表中 所有位于不同行、 个元素乘积的代数和。 所有位于不同行、不同列 的n 个元素乘积的代数和。 共有 n ! 项求和。 项求和。 3、求和项 a1 j1 a2 j2 ⋯ an jn中的行排列总是按自然次 、 序排列的,且该项的符号取决于列排列的逆序数,即为: 序排列的,且该项的符号取决于列排列的逆序数,即为:
001全排列逆序数
思考题
分别用两种方法求排列16352487的逆序数 的逆序数. 分别用两种方法求排列 的逆序数
思考题解答
解 用方法1 用方法1 1 6 3 5 2 4 8 7
t = 0+ 3+1+ 2+1+ 0+1+ 0= 8
用方法2 用方法2 由前向后求每个数的逆序数. 由前向后求每个数的逆序数
t = 0 + 0 + 1 + 1 + 3 + 2 + 0 + 1 = 8.
t = 0 + 1 + 0 + 3 + 1 = 5.
计算下列排列的逆序数, 例2 计算下列排列的逆序数,并讨论它们的奇 偶性. 偶性
(1) 217986354
解
2 1 7 9 8 6 3 5 4
0 10 0 1 3 4 4 5
t = 5 + 4 + 4+ 3+1+ 0+ 0+1+ 0
= 18
此排列为偶排列 此排列为偶排列. 偶排列
一、概念的引入
引例 用1、2、3三个数字,可以组成多少个没 三个数字, 、 、 三个数字 有重复数字的三位数? 有重复数字的三位数? 解
百位 十位 个位
1 1 1 2 1 2 3
2 2 1 3
3 3
3种放法 种放法 2种放法 种放法 1种放法 种放法
共有 3 × 2 × 1 = 6
种放法. 种放法
3排在首位 逆序数为 排在首位,逆序数为 排在首位 逆序数为0; 2的前面比 大的数只有一个 故逆序数为 的前面比2大的数只有一个 故逆序数为1; 的前面比 大的数只有一个3,故逆序数为
行列式知识要点
a21
x1
a22 x2
a2n xn
b2
,
an1x1 an2 x2 ann xn bn
的系数行列式 D 0 , 那么它有唯一解
xj
Dj D
,
j 1, 2, , n ,
其中 Dj ( j = 1, 2, ···, n ) 是把系数行列式 D 中第 j 列元素换成常数项 b1 ,b2 ,···,bn 所得到 的行列式.
这个排列的逆序数; p1p2 pn 表示对 1, 2, ···, n
的所有排列求和.
Dn 阶行列式 (D也1可)t定a义p11为ap2 2 apnn , p1 p2 pn
其中 t 为行标排列 p1p2 ···pn 的逆序数.
3. 对换 4. 行列式的性质
(1) 行列式与它的转置行列式相等,即 D = DT.
行列式 知 识 要 点
一、内容提要
1. 全排列及其逆序数 2 . n 阶行列式的定义
a11 a12 a1n
D a21 a22 a2n
an1 an2 ann
(1)t a1p1 a2 p2 anpn ,
p1 p2 pn
其中 p1p2 ···pn 为自然数 1, 2, ···, n 的一个排列; t 为
(7) 若行列式的某一行(列)的元素都是两数 之和, 则该行列式可拆成两个行列式之和.
(8) 把行列式的某一列(行)的各元素乘以同 一个数, 然后加到另一列(行)对应的元素上去, 行列式不变.
5. 行列式按行(列)展开
(1) 余子式, 代数余子式.
(2) 关于代数余子式的重要性质:
线性代数 1.1 全排列及其逆序数
三、排列的奇偶性
逆序数为奇数的排列称为奇排列; 逆序数为偶数的排列称为偶排列. 定义 把排列中两个元素位置进行对调, 称为对排列作一次对换。 定理:对换改变排列的奇偶性. 证明:先证明是相邻对换的情况,再证非 相邻对换的情况。 推论 将奇(偶)排列变成标准排列需用奇(偶)数 次对换。
第一章
行列式
§1.1 全排列及其对换
一、全排列的定义 n 个不同的元素排成一列,叫做这 n
个元素的全排列,简称排列。 例 123456 是 6 个数的全排列, 53421 是 5 个数的全排列。
二排列的逆序数
对于n 个不同的元素,规定各元素之间由小 到大为标准次序. 定义 当某两个元素的先后次序与标准次序不同 时,就说有一个逆序,一个排列中所有逆序的总 数叫做这个排列的逆序数。 求逆序数的方法: t ( p1 p2 pn ) t1 t2 tn 其中 ti 是排列中与元素 pi 相关的逆序数,即位于 pi前且比 pi 大的的元素个数。
例 (1) 求排列3412中逆序数 .
2 nn 1n 2 321
(1) t (3412) 0 0 2 2 4; 解:
(2) t (n n 1 n 2 321) 0 1 2 (n 1) 1 n(n 1) 2
线性代数1-2
al a bb1
bm
对换 a 与 b
a1
al b ab1
bm
除a,b外,其它元素的逆序数不改变. 逆序数加1或减1,奇偶性改变.
2)
一般情形
对换a与b
a1 al a b1 bm b b c1 cn
a1 al ab1 bm bc1 cn
a1
al bb1
bm ac1
cn ,
m 次相邻对换 a 1
若将t 个偶排列的前两个数对换, 则这t 个偶排列 全变成奇排列,并且它们彼此不同,于是有 t s . 故必有 s t .
本节小结
1. n元排列 2. 逆序 3. 逆序数 4. 奇偶排列 5. 对换 结论1 任一排列经过一次对换奇偶性改变. 结论2 全部n元排列中,奇偶排列各占一半.
t 18
例2 讨论排列 n n 1 n 2 解
nn 1n 2321
n1 n2
321的奇偶性.
t n 1 n 2 2 1 n n 1 , 2 当n 4k ,4k 1 时为偶排列;
当n 4k 2,4k 3 时为奇排列.
例3 选择i和j,使1i25j4869成为奇排列、偶排列.
1
4.对换
n元排列中, 任意对调两个元素的位置,其余元素 不动,这种变换叫做对换.
奇 偶
25143
偶
25413
奇
这些排列的
奇偶性呢?
2 1 6 排列经过一次对换必改变奇偶性. 证明 1) 特殊情形:相邻对换 设排列为 a1
2.逆序
n元排列中,若较大的元素排在较小的元素 前面,称为一个逆序. 比如 3 2 5 1 4
3.逆序数
排列中所有逆序的总数称为此排列的逆序数.
§2 全排列及其逆序数
例如 排列32514 中, 排列
3 2 5 1 4
逆序 逆序
2. 一个排列中所有逆序的总数称为此排列的逆序数. 一个排列中所有逆序的总数称为此排列的逆序数 逆序数. 例如: 其逆序数为5. 例如 排列 32514 , 其逆序数为 其逆序数为4. 排列 31524 , 其逆序数为 3. 排列的奇偶性 逆序数为奇数的排列称为奇排列 逆序数为奇数的排列称为奇排列; 奇排列 逆序数为偶数的排列称为偶排列 逆序数为偶数的排列称为偶排列. 偶排列
4.计算排列逆序数的方法 计算排列逆序数的方法 设排列为 p1 p2 L pn , t i 为 pi 构成的逆序数 则其逆序数为 t = t ( p1 p2 L pn ) = t1 + t 2 + Lt n−1 计算下列排列的逆序数,并讨论它们的奇偶性 并讨论它们的奇偶性. 例 计算下列排列的逆序数,并讨论它们的奇偶性.
二、排列的逆序数
规定各元素之间有一个标准次序, 规定各元素之间有一个标准次序 n 个不同的自 然数, 规定由小到大为标准次序 标准次序. 然数 …pt…ps…pn中, 若数 pt >ps, 则称这两个数组成一个逆序 逆序. 则称这两个数组成一个逆序 (即:大的数在小的数左边, 则这两数构成一个逆序) 即 大的数在小的数左边 则这两数构成一个逆序)
(1) 217986354 ( 2) n( n − 1)( n − 2)L 321
四、小结
1. n个不同的元素的所有排列总数为 个不同的元素的所有排列总数为n!. 个不同的元素的所有排列总数为 2. 排列具有奇偶性 排列具有奇偶性. 3. 计算排列逆序数. 计算排列逆序数
§2 全排列及其逆序数
一、全排列 二、排列逆序数 三、小结
【VIP专享】1-2全排列及其逆序数
一、概念的引入
引例 用1、2、3三个数字,可以组成多少个没 有重复数字的三位数?
二、全排列及其逆序数
问题 把 n 个不同的元素排成一列,共有几种不 同的排法?
定义 把 n个不同的元素排成一列,叫做这 n 个
元素的全排列(或排列).
n 个不同的元素的所有排列的种数,通常
用 Pn表示. 由引例 P3 3 2 1 6. 同理 Pn n (n 1) (n 2) 3 2 1 n!.
排列的奇偶性
逆序数为奇数的排列称为奇排列; 逆序数为偶数的排列称为偶排列.
例2 计算下列排列的逆序数.
1 217986354
解
217986354
0 10 0 1 3 4 4 5
t 5 4 4310010
18
此排列为偶排列.
2 nn 1 2
t n 1 n 2 2 1 nn 1,
2
排列的逆序数
我们规定各元素之间有一个标准次序, n 个 不同的自然数,规定由小到大为标准次序.
定义 在一个排列 i1i2 it is in 中,若数
it is 则称这两个数组成一个逆序.
例如 排列32514 中, 逆序
32514
逆序 逆序
定义 一个排列中所有逆序的总数称为此排列的 逆序数.
例1 求排列32514的逆序数. 解 在排列32514中,
32514 01 031
于是排列32514的逆序数为
t 0 1 0 3 1 5.
计算排列逆序数的方法
分别计算出排列中每个元素前面比它大的数码 个数之和,即算出排列中每个元素的逆序数, 这每个元素的逆序数之总和即为所求排列的逆 序数.
全排列及其逆序数
标准排列 在n个自然数的全排列中排列123 ⋅ ⋅ ⋅ n称为标准排列. 逆序与逆序数 在一个排列中, 如果某两个元素的先后次序与标准排列 的次序不同, 就说有1个逆序. 一个排列中所有逆序的总数叫做这个排列的逆序数.
提示: 以下我们只讨论n个自然数的全排列.
下页
标准排列 在n个自然数的全排列中排列123 ⋅ ⋅ ⋅ n称为标准排列. 逆序与逆序数 在一个排列中, 如果某两个元素的先后次序与标准排列 的次序不同, 就说有1个逆序. 一个排列中所有逆序的总数叫做这个排列的逆序数. 逆序数的计算 在排列p1p2⋅ ⋅ ⋅pn中, 如果pi的前面有ti个大于pi的数, 就说 元素pi的逆序数是ti. 排列的逆序数为t=t1+t2+ ⋅ ⋅ ⋅ +tn. 举例: 在排列32514中, t1=0, t2=1, t3=0, t4=3, t5=1. 排列32514的逆序数为t=0+1+0+3+1=5. 标准排列12345的逆序数是多少字, 可以组成多少个没有重复数 字的三位数? 解 采用先选定百位数, 再选定十位数, 最后选定个位数 的步骤. 百位数有3种选法, 十位数有2种选法, 个位数有1种选法. 因为3×2×1=6, 所以可以组成6个没有重复数字的三位数. 这6个三位数是 123, 132, 213, 231, 312, 321.
下页
标准排列 在n个自然数的全排列中排列123 ⋅ ⋅ ⋅ n称为标准排列. 逆序与逆序数 在一个排列中, 如果某两个元素的先后次序与标准排列 的次序不同, 就说有1个逆序. 一个排列中所有逆序的总数叫做这个排列的逆序数. 奇排列与偶排列 逆序数为奇数的排列叫做奇排列, 逆序数为偶数的排列 叫做偶排列. 举例: 排列32514的逆序数是5, 它是奇排列. 标准排列12345的逆序数是0, 它是偶排列.
线性代数1-2
思考题:符合标准次序的排列是奇排列还是偶排列? 答:符合标准次序的排列(例如:123)的逆序数等于零,因 而是偶排列.
计算排列的逆序数的方法
设 p1p2 … pn 是 1, 2, …, n 这 n 个自然数的任一排列,并 规定由小到大为标准次序. 先看有多少个比 p1大的数排在 p1前面,记为 t1 ; 再看有多少个比 p2大的数排在 p2前面,记为 t2 ; …… 最后看有多少个比 pn大的数排在 pn前面,记为 tn ;
2. 若排列的x1x2…xn逆序数为I,求排列xn xn-1…x1 的逆序数.
答 案
继续
1. (1)9
(2)1 3 (2n 1) n2
2. ( xn xn1
x1 )
n(n 1) I . 2
详解
10
思考练习(排列的逆序数详解)
方法1 在排列x1x2…xn中,任取两数xs和xt(s<t), 则它们必在排列x1x2…xn或xnxn-1…x1中构成逆序, 且只能在其中的一个排列中构成逆序.又在排列
发生变化;而j与k两数构成逆序的情形有变化:
若(1)中jk构成逆序,则(2)中不构成逆序(逆序数减少1)
若(1)中jk不构成逆序,则(2)中构成逆序(逆序数增加1)
一般情形
设排列 …ji1…isk… (3) 经j,k对换变成 …k i1…is j… (4) 易知,(4)可由(3)经一系列相邻对换得到:
例6
( 31)
(42)
(43)
342114231243 1234
5 2 1 0
结论: ①对换改变排列的奇偶性. ②任意一个n级排列与标准排列12…n都可以经过一
计算机网络实验基础知识1-2 全排列及其逆序数
于是排列32514的逆序数为 t 0 1 0 3 1 5.
例2 计算下列排列的逆序数,并讨论它们的奇 偶性.
1 7986354
解
217986354
0 10 0 1 3 4 4 5
t 5 4 4310010
18
此排列为偶排列.
i1 前面比i1 大的数码个数; i1 i 2 i n
向前看大 向后看小
③ i1 后面比i1 小的数码个数 i2 后面比i2 小的数码个数
in 后面比in 小的数码个数; i1 i 2 in
向后看小 向前看大
例1 求排列32514的逆序数.
解 在排列32514中, 3排在首位,逆序数为0; 2的前面比2大的数只有一个3,故逆序数为1; 5的前面没有比5大的数,其逆序数为0; 1的前面比1大的数有3个,故逆序数为3;
分别用两种方法求排列16352487的逆序数.
思考题解答
解 用方法1 1 63 5 2 4 8 7 t 03121010 8
用方法2 由前向后求每个数的逆序数. t 0 0 1 1 3 2 0 1 8.
2 nn 1n 2321
解 n1
nn1n 2321 n 2
t n 1 n 2 2 1 nn 1,
2 当 n 4k ,4k 1时为偶排列;
从后面向前看大
当 n 4k 2,4k 3 时为奇排列.
3 2k 12k 122k 232k 3k 1k
从前面向前看大
解
2k 1 2k 1 2 2k 2 3 2k 3k 1 k
01 1 2 2
k
t 0 1 1 2 2 k 1 k 1 k
21 k 1k 1 k k 2,
逆序数和约瑟夫
§ 2 全排列及其逆序数一、全排列个不同元素排成一列。
可将个不同元素按1~ 进行编号,则个不同元素的全排列可看成这个自然数的全排列。
个不同元素的全排列共有种。
逆序的定义:取一个排列为标准排列,其它排列中某两个元素的次序与标准排列中这两个元素的次序相反时,则称这两个元素构成一个逆序。
通常取从小到大的排列为标准排列,即 1~ 的全排列中取123 为标准排列。
二、逆序及逆序数逆序数的定义:一个排列的逆序数的总数称为逆序数。
逆序数为偶数称为偶排列,逆序数为奇数称为奇排列,标准排列规定为偶排列。
逆序数的计算:设为的一个全排列,则其逆序数为其中为排在前,且比大的数的个数。
例:求的逆序数。
解:,逆序数算法在网上看了很多用mergesort求逆序数的代码,发觉很多都不太对,主要是在merge时求本次merge是前后两部分的逆序数过程,其实merge时由于前后两部分都是已经排好序的,假设merge的两个数组分别为a[n1],b[n2],合并时的逆序数就应该=b中所有小于a[1]的个数,小于a[2]的个数,小于a[3]的个数...小于a[n1]的个数之和=a中所有大于b[1]的个数,大于b[2]的个数,大于b[3]的个数...大于b[n2-1]的个数之和。
因此对于此次合并逆序数的个数有两种计算方法,一是以a中元素作为判断来计算,一是以b中元素作为判断来计算。
以a中元素作为为例:计算过程为,每当把a中某一个元素a[i]插入合并后的数组中时,计算b中已经插入合并后的数组中的元素个数ki,把这些所有的ki加起来即为本次合并的逆序数,具体的代码如下其中的iversion为逆序数。
int inversion=0;void merge(int* a,int p,int q,int r){int n1=r-p+1;int n2=q-r;int i,j,k;k=0;int *tmp=new int[n1+n2];for(i=p,j=r+1;i<=r&&j<=q;){if(a[i]<=a[j]){tmp[k]=a[i];inversion+=j-r;i++;k++;}else{tmp[k]=a[j];j++;k++;}}while(i<=r){tmp[k++]=a[i++];inversion+=q-r;}while(j<=q){tmp[k++]=a[j++];}for(i=p;i<=q;i++)a[i]=tmp[i-p];delete [] tmp;}如果所有人是线性排列,那我们的工作就是类似冒泡程序做的工作,,1,2,3,4,5变为5,4,3,2,1 ,耗时n(n-1)/2但是出现了环,也就是说1,2,3,4,5变为3,2,1,5,4也可满足条件我们可以把这个环等分成两个部分,每个部分看成是线性的,再把它们花的时间加起来. 当n是偶数时, 每份人数n/2 ,即(n/2-1)*(n/2)*2当n是偶数时,两份的人数分别是n/2和n-n/2,即(n/2-1)*(n/2)+ ((n-n/2)-1)*(n-n/2)/2*/int main(){int t,n,i,r,s;cin>>t;while(t--){cin>>n;if(n%2==0){r=n/2;s=(n/2-1)*(n/2);}else{r=n/2;n=n-r;s=(r-1)*r/2+(n-1)*n/2;}cout<<s<<endl;}return 0;}若是线形无环,将1-n变为n-1,求逆序数n*(n-1)/2即可(线性代数)但本题由于是环,则在1-n中取一k,将1-n 变为形如k-1,n-(k+1)也可满足条件,比如1,2,3,4,5变为3,2,1,5,4也可满足条件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
解
n1
n n 1 n 2 321
ቤተ መጻሕፍቲ ባይዱ
n 2
t n 1 n 2 2 1
nn 1 2
,
同理
Pn n ( n 1 ) ( n 2 ) 3 2 1 n !.
排列的逆序数 我们规定各元素之间有一个标准次序, n 个 不同的自然数,规定由小到大为标准次序.
定义
例如
在一个排列 i 1 i 2 i t i s i n 中,若数 i t i s 则称这两个数组成一个逆序. 排列32514 中, 逆序 3 2 5 1 4 逆序 逆序
定义 一个排列中所有逆序的总数称为此排列的 逆序数. 例1
解
求排列32514的逆序数.
在排列32514中,
3 2 5 1 4
0 1 0 3 1
于是排列32514的逆序数为
t 0 1 0 3 1 5.
计算排列逆序数的方法
分别计算出排列中每个元素前面比它大的数码 个数之和,即算出排列中每个元素的逆序数, 这每个元素的逆序数之总和即为所求排列的逆 序数.
第二节
全排列及其逆序数
一、概念的引入
引例 用1、2、3三个数字,可以组成多少个没 有重复数字的三位数?
二、全排列及其逆序数
问题 把 n 个不同的元素排成一列
同的排法? ,共有几种不
定义 把 n 个不同的元素排成一列,叫做这 n 个 元素的全排列(或排列).
n 个不同的元素的所有排列的种数,通常
用 Pn表示. 由引例 P3 3 2 1 6 .
排列的奇偶性
逆序数为奇数的排列称为奇排列;
逆序数为偶数的排列称为偶排列.
例2
1
计算下列排列的逆序数.
217986354
解
2 1 7 9 8 6 3 5 4
0 1 0 0 1 3 4 4 5
t 5 4 4 31 0 01 0
18
此排列为偶排列.
2
n n 1 n 2 321