Spike sorting plays a pivotal role in neuroscience, serving as a crucial step of separating electrical signals recorded from multiple neurons to further analyze neuronal interactions. This process involves separating electrical signals that originate from multiple neurons, recorded through devices like electrode arrays. This is a very important link in the field of brain-computer interfaces. The objective of spike sorting algorithm (SSA) is to distinguish the behavior of one or more neurons from background noise using the waveforms captured by brain-embedded electrodes. This article starts from the steps of the conventional SSA and divides the SSA into three steps: spike detection, spike feature extraction, and spike clustering. It outlines prevalent algorithms for each phase before delving into two emerging technologies: template matching and deep learning-based methods. The discussion on deep learning is further subdivided into three approaches: end-to-end solution, deep learning for spike sorting steps, and spiking neural networks-based solutions. Finally, it elaborates future challenges and development trends of SSAs.