DraculaW

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  19 随笔 :: 0 文章 :: 7 评论 :: 0 Trackbacks
<2025年4月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

常用链接

留言簿(1)

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜

// 給一個數組 a[n] = {0, 1, 2, 3, 4, 5, 6} 一個k=3
// 將 a[n]變為 a[n] = {3, 4, 5, 6, 0, 1, 2}
// 具體的算法是
// 先將 a[n] 變為{2, 1, 0, 6, 5, 4, 3}
// 再把 a[n] 逆轉了

void swap(int *a, int *b)
{
    int t = *a;
    *a = *b;
    *b = t;
}

void resv(int* a, int start, int end)
{
    end = end-1;

    while(start < end)
    {
        swap(a+start, a+end);
        start--, ed--;
    }
}

void resver(int *a, int size, int k)
{
    resv(a, 0, k);
    resv(a, k, size);
    resv(a, 0, size);
}
posted on 2007-11-15 20:33 DraculaW 阅读(239) 评论(0)  编辑 收藏 引用