O(n log n):
ref:http://www.cnblogs.com/itlqs/p/5743114.html
ref:http://blog.csdn.net/wall_f/article/details/8295812
ref:http://blog.csdn.net/shuangde800/article/details/7474903