The multiple-input-multiple-output (MIMO) technique is being actively adopted in recent wireless communication standards to enhance data rate. Though channel capacity is increased by adopting multiple spatial streams, the computational complexity needed to eliminate the interference hinders the implementation of a practical system. In this paper, we propose a modified Dijkstra's algorithm and a precalculation technique to improve the throughput by allowing overlapped processing. For the maximum-likelihood (ML) detection, in addition, we propose a simple approximation of L(2)-norm calculation to reduce the computational complexity without degrading the error performance noticeably. A MIMO symbol detector based on the proposed algorithm is implemented in a 0.18-mu m CMOS process, targeting 4 x 4 16-QAM. It occupies about 0.5 mm(2) with 25.1 K equivalent gates and shows a throughput of over 300 Mb/s.