手摇法指通过三次reverse操作,实现数组的rotation:
>>如何实现字符串倒置
1 2 3 4 5 6 7 8 9 10 11 |
|
>>字符串旋转和手摇算法
《编程珠玑》里的一个题目:
请将一个具有n个元素的一维向量x向左旋转i个位置。例如,假设n=8,i=3,
那么向量abcdefgh旋转之后得到向量defghabc。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
|
手摇算法还可以用来优化归并排序,实现不需要额外空间开销的原地归并,即将空间复杂度降为O(1),下次再去看一下。