  In this work, we explore four common algorithms for community detection in
networks, namely Agglomerative Hierarchical Clustering, Divisive Hierarchical
Clustering (Girvan-Newman), Fastgreedy and the Louvain Method. We investigate
their mechanics and compare their differences in terms of implementation and
results of the clustering behavior on a standard dataset. We further propose
some enhancements to these algorithms that show promising results in our
evaluations, such as self-neighboring for Neighbor Matrix constructions, a
deterministic slightly faster version of the Louvain Method that favors less
bigger clusters and various implementation changes to the Fastgreedy algorithm.
