add k_means algorithm