时间复杂度O(n),空间O(1)。int gcd(int a, int b) { if (a == 0) { return b; } return gcd(b%a, a); } void ROL(int *a, int n, int k) { if (k == 0 || n == 0) { return; } k %= n; int t, i, j, next; for (i = 0; i < gcd(k, n); ++i) { t = a[i]; j = i; while((next = (j+k)%n) != i) { a[j] = a[next]; j = next; } a[j]=t; } }
海豚算法循环左移
最新推荐文章于 2023-08-28 16:52:56 发布