This document discusses clustering algorithms for wireless sensor networks. It begins with an introduction to wireless sensor networks and clustering. It then discusses various clustering algorithms such as LEACH, ACW, CIPRA, ERA, LEACH-C, EECHSSDA, HEED, and HEF. Many of the early algorithms like LEACH, ACW and CIPRA do not consider energy levels of nodes when selecting cluster heads. Later algorithms such as ERA, LEACH-C, EECHSSDA, HEED, and HEF aim to maximize network lifetime by selecting cluster heads based on remaining energy levels or probability related to energy. HEF is presented as an algorithm that can provide optimal cluster head selection as well