#include <stdio.h>
void swap(char x[], int i, int j, int k)
{
char temp;
while (k-- > 0)
{
temp = x[i];
x[i] = x[j];
x[j] = temp;
i++;
j++;
}
}
void gcdrot(char x[], int rotdist, int n)
{
int i, j, p;
if (rotdist == 0 || rotdist == n)
return;
i = p = rotdist;
j = n - p;
while (i != j)
{
if (i > j)
{
swap(x, p-i, p, j);
i -= j;
}
else
{
swap(x, p-i, p+j-i, i);
j -= i;
}
}
swap(x, p-i, p, i);
}
int main()
{
char x[] = "abcdefghij";
int len = strlen(x);
gcdrot(x, 5, len);
puts(x);
return 0;
}
块交换算法
最新推荐文章于 2022-07-06 16:23:15 发布