向量旋转算法

     问题:如何将一个向量abcdefghigklmn向左旋转i个位置。前提是采用几字节的内存,而时间复杂度跟向量长度成正比。

     这个问题来自《编程珠玑》,当我看了第一个“杂技”算法,感觉挺有意思的,从我们的思考角度来讲,该算法很有效,就是将第一个元素先缓存起来,然后每隔i个位置修改一下

本位置的数据,直到所有的元素都被修改了为止,实现了下,感觉判断所有元素是否都被修改还需要至少一个字节来记录。

     接着看到了向量旋转算法,感觉挺有意思的,ab变为ba,其实就是a的转置*b的转置后再转置。这成为了一种普遍的比较节省内存的“向量旋转算法”。

posted on 2012-02-26 12:16  sprzhing  阅读(836)  评论(0编辑  收藏  举报

导航