Cho một mảng A chứa các số. Yêu cầu sắp xếp sao cho các số chẵn đứng trước, số lẻ đứng sau. Ví dụ: A = [1, 5, 6, 8, 7, 2, 3] thì kết quả là [6, 8, 2, 1, 5, 7, 3].
Giải pháp
Các bước:
- Khởi tạo i = 0, j = 0.
- Trong khi j < kích thước mảng:
- Nếu arr[j] chẵn: hoán đổi arr[i] và arr[j], tăng i lên 1.
- Tăng j lên 1.
- Trả về mảng đã sắp xếp.
Ví dụ
Triển khai Python:
class Solution(object):
def sortArrayByParity(self, a):
i = 0
j = 0
while j < len(a):
if a[j]%2==0:
a[i],a[j] = a[j],a[i]
i+=1
j+=1
return a
ob1 = Solution()
print(ob1.sortArrayByParity([1,5,6,8,7,2,3])) Đầu vào
[1,5,6,8,7,2,3]
Đầu ra
[6,8,2,5,7,1,3]