图序列的判定算法
(1)已知非递增、非负整数序列 S,删除 S 中的第 1 个数 k 得到 S1。
(2)若序列 S1 中的前 k 个数均不小于 1,则将这 k 个数分别都减去 1 得序列 S2;否则,序列 S 不是图序列。
(3)若序列 S2 全是 0,则序列 S 是图序列;否则,将序列 S2 重新排序得非递增序列 S3。
(4)令 S = S3,转步骤(1)。
一次循环 | 二次循环 | 三次循环 |
---|---|---|
S:3,2,2,1,1,1 | S:1,1,1,1,0 | S:1,1,0,0 |
S1:2,2,1,1,1 | S1:1,1,1,0 | S1:1,0,0 |
S2:1,1,0,1,1 | S2:0,1,1,0 | S2:0,0,0 |
S3:1,1,1,1,0 | S3:1,1,0,0 | 停止算法 |