In this dissertation, we study linear programming (LP) decoding of low-density parity-check (LDPC) codes based on the alternating direction method of multipliers (ADMM) technique, or ADMM decoding for short. The decoding of LDPC codes is formulated as an LP model and solved efficiently by the ADMM technique. However, compared with traditional belief-propagation decoding, ADMM decoding suffers from higher complexity and worse error correction performance, which prevents the employment of ADMM decoding in reality. To reduce the complexity of ADMM decoding, we first focus on the simplification of the check polytope projection, the most complex operation in ADMM decoding. We propose an iterative check polytope projection algorithm without the sorting operation. The proposed algorithm converges with the increase of iterations. Moreover, for a fixed number of iterations, its average complexity and the worst-case complexity are linear in the input dimension. Another direction we propose to simplify ADMM decoding is to devise a better scheduling scheme than the standard flooding scheme. We start from the node-wise scheduling scheme which only updates the check node messages with the maximum message residual. Then we simplify the calculation of the message residual and propose a reduced-complexity node-wise scheduling scheme. To improve the error correction performance of ADMM decoding, we propose a novel ADMM penalized decoding algorithm whose penalty term is based on check nodes (CN). We investigate the properties of the CN penalty functions and show several examples. We make conclusions on its convergence properties and prove its failure probability is independent of the transmitted codewords for symmetric channels. Monte-Carlo simulation and the instanton analysis show its better error correction performance in the low and high SNR regions. Finally, we propose a post-processing technique to lower the error floor of LDPC codes. The output of the first stage decoder can be revised if the syndrome is found in a look-up table that contains the dominant trapping sets of this code. The most complex part of the technique, the syndrome pattern matching (SPM) operation, is simplified to a one-dimensional binary search operation. Besides, a simplified SPM algorithm is proposed for quasi-cyclic (QC) LDPC codes.