Mobile P2P networking is an enabling technology for mobile devices to self-organize in an unstructured style and communicate in a peer-to-peer fashion. Due to user mobility and/or the unrestricted switching on/off of the mobile devices, links are intermittently connected and end-to-end paths may not exist, causing routing a very challenging problem. Moreover, the limited wireless spectrum and device resources together with the rapidly growing number of portable devices and amount of transmitted data make routing even harder. To tackle these challenges, the routing algorithms must be scalable, distributed, and light-weighted. Nevertheless, existing approaches usually cannot simultaneously satisfy all these three requirements. In this paper, we propose two opportunistic routing algorithms for intermittently connected mobile P2P networks, which exploit the spatial locality, spatial regularity, and activity heterogeneity of human mobility to select relays. The first algorithm employs a depth-search approach to diffuse the data towards the destination. The second one adopts a depth-width-search approach in a sense that it diffuses the data not only towards the destination but also to other directions determined by the actively moving nodes (activists) to find better relays. We perform both theoretical analysis as well as a comparison based simulation study. Our results obtained from both the synthetic data and the real world traces reveal that the proposed algorithms outperform the state-of-the-art in terms of delivery latency and delivery ratio.