Lời giải khác cho bài toán chia mảng thành 2 phần chẵn lẻ

Chào mọi người. Em đang làm bài toán:
Cho một dãy các số nguyên dương, viết giải thuật đệ quy để sắp xếp lại dãy số đó sao cho tất cả các số chẵn đứng trước tất cả các số lẻ (không quan trọng thứ tự trong các số chẵn hay trong các số lẻ).
Hiện tại em mới chỉ biết được 1 cách thời gian O(n) và độ sâu O(n) là:
Xét dãy S trên[start:stop], kiểm tra nếu S[start] chẵn thì xét S trên[start + 1: stop], nếu S[start] lẻ thì đổi giá trị S[start], S[stop - 1] rồi xét S trên [start:stop - 1]
Nhưng cách này thì tốn nhiều tài nguyên nếu S quá lớn. Khi chạy trên Python sẽ bị lỗi nếu S nhiều hơn 1000 phần tử.
Mọi người có thuật toán đệ quy nào hiệu quả hơn không ạ?
Em xin cảm ơn!

Python mà viết a[:] thì là clone mảng nên sập luôn :smiley: dùng chỉ số nhé.

3 Likes

Vâng ạ, khi viết code em có dùng chỉ số ạ!

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?