In order to achieve the autonomy of mobile robots, effective localization is a necessary prerequisite. In this paper, we propose an improved Monte Carlo localization algorithm using self-adaptive samples (abbreviated as SAMCL). By employing a pre-caching technique to reduce the online computational burden, SAMCL is more efficient than the regular MCL. Further, we define the concept of similar energy region (SER), which is a set of poses (grid cells) having similar energy with the robot in the robot space. By distributing global samples in SER instead of distributing randomly in the map, SAMCL obtains a better performance in localization. Position tracking, global localization and the kidnapped robot problem are the three sub-problems of the localization problem. Most localization approaches focus on solving one of these sub-problems. However, SAMCL solves all the three sub-problems together, thanks to self-adaptive samples that can automatically separate themselves into a global sample set and a local sample set according to needs. The validity and the efficiency of the SAMCL algorithm are demonstrated by both simulations and experiments carried out with different intentions. Extensive experimental results and comparisons are also given in this paper.