Given an array `A`

of non-negative integers, return an array consisting of all the even elements of `A`

, followed by all the odd elements of `A`

.

You may return any answer array that satisfies this condition.

Example 1:

```
Input: [3,1,2,4]
Output: [2,4,3,1]
The outputs [4,2,3,1], [2,4,1,3], and [4,2,1,3] would also be accepted.
```

Note:

`1 <= A.length <= 5000`

`0 <= A[i] <= 5000`

```
func sortArrayByParity(A []int) []int {
var (
i int = 0
j int = len(A) - 1
)
for i < j {
switch {
case A[i] % 2 == 0:
i++
case A[i] % 2 == 1:
A[i], A[j] = A[j], A[i]
j--
case A[j] % 2 == 1:
j--
case A[j] % 2 == 0 :
A[i], A[j] = A[j], A[i]
i++
}
}
return A
}
```

```
func sortArrayByParity(A []int) []int {
var a []int
var b []int
var arr []int
for i := 0; i < (len(A)); i++ {
if A[i] % 2 == 0 {
a = append(a,A[i])
} else {
b = append(b,A[i])
}
}
arr = append(a, b...)
return arr
}
```