List Comprehension là kỹ thuật phổ biến trong Python. Ở đây ta dùng kỹ thuật này. Tạo mảng nhập từ người dùng với phần tử 0 và 1 ngẫu nhiên. Sau đó phân tách 0 bên trái và 1 bên phải. Duyệt mảng và tách thành hai list khác nhau, một chứa 0, một chứa 1, sau đó nối hai list.
Ví dụ
Input:: a=[0,1,1,0,0,1] Output::[0,0,0,1,1,1]
Thuật toán
seg0s1s(A) /* A là mảng nhập, phần tử A là tổ hợp 0 và 1 */ Bước 1: Duyệt mảng. Bước 2: Kiểm tra từng phần tử. Nếu phần tử là 0, vị trí bên trái, nếu 1 thì bên phải. Bước 3: Nối hai list.
Mã ví dụ
# Phân tách 0 và 1 trong mảng list def seg0s1s(A): n = ([i for i in A if i == 0] + [i for i in A if i == 1]) print(n) # Chương trình chính if __name__ == "__main__": A=list() n=int(input("Nhập kích thước mảng ::")) print("Nhập số ::") for i in range(int(n)): k=int(input("")) A.append(int(k)) print("Mảng Mới ::") seg0s1s(A) Kết quả
Nhập kích thước mảng ::6 Nhập số :: 1 0 0 1 1 0 Mảng Mới :: [0, 0, 0, 1, 1, 1]