标准库算法实现
数组篇
STL::rotate
void rotate(vector<int>& vec, int bias){
int len = vec.size();
int start = 0, cnt = 0;
for (int i = start; i < bias; i++){
int tmp = vec[i];
int lo = i;
do {
int next = lo + bias;
if (next % len == start){
vec[lo % len] = tmp; cnt++;
if (cnt == len) return;
break;
}
vec[lo % len] = vec[next % len]; cnt++;
if (cnt == len) return;
lo = next;
} while (1);
}
} sort

最后更新于