  Non-orthogonal multiple access (NOMA) is a promising technology to increase
the spectral efficiency and enable massive connectivity in 5G and future
wireless networks. In contrast to orthogonal schemes, such as OFDMA, NOMA
multiplexes several users on the same frequency and time resource. Joint
subcarrier and power allocation problems (JSPA) in NOMA are NP-hard to solve in
general. In this family of problems, we consider the weighted sum-rate (WSR)
objective function as it can achieve various tradeoffs between sum-rate
performance and user fairness. Because of JSPA's intractability, a common
approach in the literature is to solve separately the power control and
subcarrier allocation (also known as user selection) problems, therefore
achieving sub-optimal result. In this work, we first improve the computational
complexity of existing single-carrier power control and user selection schemes.
These improved procedures are then used as basic building blocks to design new
algorithms, namely Opt-JSPA, $\varepsilon$-JSPA and Grad-JSPA. Opt-JSPA
computes an optimal solution with lower complexity than current optimal schemes
in the literature. It can be used as a benchmark for optimal WSR performance in
simulations. However, its pseudo-polynomial time complexity remains impractical
for real-world systems with low latency requirements. To further reduce the
complexity, we propose a fully polynomial-time approximation scheme called
$\varepsilon$-JSPA. Since, no approximation has been studied in the literature,
$\varepsilon$-JSPA stands out by allowing to control a tight trade-off between
performance guarantee and complexity. Finally, Grad-JSPA is a heuristic based
on gradient descent. Numerical results show that it achieves near-optimal WSR
with much lower complexity than existing optimal methods.
