数组左平移

来源:互联网 发布:caxa编程快捷键 编辑:程序博客网 时间:2024/05/19 04:05
//时间O(n),空间O(1)int gcd(int x, int y) {    while (x != 0) {        x ^= y; y ^= x; x ^= y;        x %= y;    }    return y;}void transleft(int *A, int k,int n) {    k = (k % n + n) % n;        int m = gcd(n, k);    for (int i = 0; i < m; ++i) {           int temp = A[i];       for (int j = 0;j<n/m-1;++j)           A[(i+k*j)%n] = A[(i+k*(j+1))%n];       A[(i + k*(n / m - 1)) % n]=temp;    }}
原创粉丝点击