def build(data_set, number_of_clusters)
@data_set = data_set
@number_of_clusters = number_of_clusters
@clusters = [@data_set[0..-1]]
while(@clusters.length < @number_of_clusters)
cluster_index_to_split = max_diameter_cluster(@clusters)
cluster_to_split = @clusters[cluster_index_to_split]
splinter_cluster = init_splinter_cluster(cluster_to_split)
while true
dist_diff, index = max_distance_difference(cluster_to_split, splinter_cluster)
break if dist_diff < 0
splinter_cluster << cluster_to_split.data_items[index]
cluster_to_split.data_items.delete_at(index)
end
@clusters << splinter_cluster
end
return self
end