GBCT: An Efficient and Adaptive Granular-Ball Clustering Algorithm for Complex Data