
算法思想:1.最后一个数据排到奇数与偶数交界处;2.自前到后的第一个偶数排到最后一个位置,空出的位置排列自后往前的第一个奇数,依次类推。
最终排序示例如下。
排序前 | 171 | 85 | 64 | 55 | 42 | 62 | 33 | 17 | 34 | 30 |
排序后 | 171 | 85 | 17 | 55 | 33 | 30 | 62 | 42 | 34 | 64 |
(2)实现上述功能的 VB 程序如下,请在划线处填入合适的代码。
Dim a(1 To 10) As Integer, n As Integer
Private Sub Cmd1_Click()
Dim s As String
List1.AddItem "随机生成的数据如下:"
n = Val(Text1.Text)
s = ""
For i = 1 To n
a(i) =________
s = s + Str(a(i))
Next i
List1.AddItem s
End SubPrivate Sub Cmd2_Click()
Dim i As Integer, j As Integer, s As String
Dim temp As Integer, flag As Boolean
i = 1: j = n
temp = a(j): flag = True
Do While i < j
If flag ThenIf a(i) Mod 2 = 0 Then
a(j) = a(i)
j = j - 1
flag = Not flag
Else
_____________
End If
Else
If a(j) Mod 2 = 1 Then
a(i) = a(j)
flag = Not flag
Else
j = j - 1
End If
End If
Loop
__________
List1.AddItem "排列处理后的数据如下所示:"
s = ""
For i = 1 To n
s = s + Str(a(i))
Next i
List1.AddItem s
End Sub

同类型试题

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2


y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

