DraculaW

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  19 随笔 :: 0 文章 :: 7 评论 :: 0 Trackbacks
// 給一個數組 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 阅读(222) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理