  Arikan has shown that systematic polar codes (SPC) outperform nonsystematic
polar codes (NSPC). However, the performance gain comes at the price of
elevated encoding complexity, i.e., compared to NSPC, the available encoding
methods for SPC require higher memory and computation. In this letter, we
propose an efficient encoding algorithm requiring only $N$ bits of memory and
having $\frac{N}{2}\log_2N$ XOR operations. Moreover, the auxiliary variables
in the algorithm can share the memory to reduce extra memory requirement.
Furthermore, a parallel 2-bit encoding algorithm is also presented to improve
the encoding throughput. Remarkably, we show that parallel encoding can be
implemented with the same number of XOR operations and memory bits. Finally,
the proposed encoding algorithm can be directly used for NSPC with the same
complexity.
