题目:输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,
所有偶数位于数组的后半部分。要求时间复杂度为O(n)。
VB.NET codes as below:
Module MyModule
Sub Main()
Dim array = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 9, 8, 7, 6, 5, 4, 3, 2, 2}
array = SortArray(array)
For Each i As Integer In array
Console.WriteLine(i)
Next
Console.ReadKey()
End Sub
Public Function SortArray(ByVal array As Integer()) As Integer()
If Not array Is Nothing Then
Dim startIndex = 0
Dim endIndex = array.Length - 1
While (startIndex < endIndex)
If Not (array(startIndex) Mod 2 = 0) Then
startIndex += 1
ElseIf (array(endIndex) Mod 2 = 0) Then
endIndex -= 1
Else
Dim mark = array(startIndex)
array(startIndex) = array(endIndex)
array(endIndex) = mark
startIndex += 1
endIndex -= 1
End If
End While
End If
Return array
End Function
End Module