An unsupervised algorithm that groups data points into k clusters by minimizing distance to cluster centers.