四个数字全排列 c语言,求E语言数字全排列的算法,用纯代码将一串数字进行大小排列...

本文介绍了一种使用VBA实现的排列算法,该算法能够处理整数数组,并通过递减序列的查找与交换来生成不同的排列。代码详细展示了如何通过内部循环找出最长的递减序列并进行元素交换。

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

满意答案

00e27ab806e4881f8254fe7ae8741834.png

sdxtjf

2014.07.21

00e27ab806e4881f8254fe7ae8741834.png

采纳率:44%    等级:13

已帮助:4778人

534216789。

程序代码如下:

Private Sub Degr(p() As Integer, ByVal n As Integer)

Dim i As Integer, j As Integer

Do While n > 0

OutL p

If p(1) = n Then '如果第一位是n

i = 0

Do '从左端开始找出最长的连续递降序列

i = i + 1

If i = n Then Exit Sub

Loop Until p(i) <> p(i + 1) + 1

j = i

Do '找出递降序列末尾数字的下一个数字

i = i + 1

Loop Until p(i) = p(j) - 1

Swap p(i), p(i - 1) '将它与序列末尾数字交换

For i = 1 To n - j '将递减序列倒转后放置在排列右端

p(i) = p(i + j)

Next

For i = 1 To j

p(n - i + 1) = n - i + 1

Next

Else '如果最高位不是n

i = 0 '从左端开始

Do '找出n所在位置

i = i + 1

Loop Until p(i) = n

Swap p(i), p(i - 1)'将n与其左边数字交换

End If

Loop

End Sub

00分享举报

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值