数组循环右移

2018-07-21  本文已影响0人  飒风灬

//n 是最大的个数 m 是移动的位数
void circle(int arr[], int n, int m)
{
int i, j;
m = m % n;

if(m > 0 && m < n)
{
    for(i = 0, j = n - 1; i < j; i++, j--)
    {
        swap(arr[i], arr[j]);
    }
    
    for(i = 0, j = m - 1; i < j; i++, j--)
    {
        swap(arr[i], arr[j]);
    }
    
    for(i = m, j = n - 1; i < j; i++, j--)
    {
        swap(arr[i], arr[j]);
    }
    
}

}

上一篇 下一篇

猜你喜欢

热点阅读