求E语言数字全排列的算法,用纯代码将一串数字进行大小排列
来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/06/30 20:35:51
求E语言数字全排列的算法,用纯代码将一串数字进行大小排列
![求E语言数字全排列的算法,用纯代码将一串数字进行大小排列](/uploads/image/z/1712180-20-0.jpg?t=%E6%B1%82E%E8%AF%AD%E8%A8%80%E6%95%B0%E5%AD%97%E5%85%A8%E6%8E%92%E5%88%97%E7%9A%84%E7%AE%97%E6%B3%95%2C%E7%94%A8%E7%BA%AF%E4%BB%A3%E7%A0%81%E5%B0%86%E4%B8%80%E4%B8%B2%E6%95%B0%E5%AD%97%E8%BF%9B%E8%A1%8C%E5%A4%A7%E5%B0%8F%E6%8E%92%E5%88%97)
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
再问: 这不是vb的么
再答: 意思差不多
再问: …好吧
程序代码如下:
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
再问: 这不是vb的么
再答: 意思差不多
再问: …好吧