Wireless sensor network (WSN) consists of a number of nodes that are mostly distributed in a random way to monitor or control different phenomena, such as military operations, earthquake monitoring, environmental monitoring, factory automation and security. A sensor network is formed from a large number of tiny, low energy, limited processing capability and low-cost devices called sensor nodes (SNs) that communicate with each other in an ad-hoc fashion. SNs gather and forward data in order to achieve targeted missions. However, the manual configuration for any sensor network is difficult especially when they are distributed in such a harsh environment. The task of determining the exact position of SNs in WSNs is known as localization, which is an important factor in all WSNs applications that deal with monitoring or controlling phenomena. The localization accuracy varies from one application to another; localization techniques are deployed in different applications based on given requirements. Localization techniques are categorized into two groups: range free and range based. In range-free techniques, localization depends on the relationship between nodes and topological information of sensor nodes; however, in the range-based group, it is required to calculate the distance between sensor nodes. The scope of this paper is on the range-free localization techniques only. First, we survey different range-free localization techniques and discuss some of the localization-based applications where the location of the SNs is vital and sensitive. Then, we describe five localization algorithms: Centroid, Amorphous, approximate point in triangle, DV-Hop and DV-HopMax. After that, we simulate these algorithms using MATLAB based on different setups and topologies. Finally, we make a comparative study between aforementioned localization algorithms based on different performance metrics showing their pros and cons such as localization accuracy and energy consumption.