shift算法