Cognitive radio has become a promising technology in recent times as it facilitates the opportunistic use of the frequency spectrum, a precious resource in the communications arena. In this regard, cognitive radio ad hoc networks (CRAHNs) couple the features of ad hoc networks with cognitive radio technology in order to make the use of spectrum efficient, opportunistic, and dynamic. Ironically, however, CRAHNs have a couple of challenging issues to deal with the spectrum variation in temporal and spatial domain, dynamic topology and unpredictable primary user behavior. Additionally, one of the serious problems with CRAHNs is the limited energy supply in the form of battery. Several techniques have been proposed that contribute towards improving the usefulness and conservation of this valuable energy. It is clear that routing consumes a substantial amount of energy. Routing in CRAHNs, therefore, requires all the key issues to be addressed with flawlessness. This survey focuses on the various routing protocols that have been reported to date for prolonging the lifetime of the network as well as for improving system performance and reliability. It also sheds light on the challenging issues of designing and implementing routing protocols for CRAHNs.