2011年10月9日

数组循环移位算法(左旋字符串)【总结】

摘要: 问题:定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。如把字符串abcdef左旋转2位得到字符串cdefab。请实现字符串左旋转的函数。要求时间对长度为n的字符串操作的复杂度为O(n),辅助内存为O(1)。解法一:(循环换位算法)不考虑时间和空间的限制。设移动的位数为k。则循环k次,每次移动1位。这样的空间复杂度是O(1),时间复杂度是O(n*k)。如果k小于n,则O(n^2)。void RightShift(char *arr, int N, int k){ k %= N ; //缩小k的范围 while(k--) { char t = ar... 阅读全文

posted @ 2011-10-09 16:27 散人 阅读(1459) 评论(0) 推荐(0) 编辑

导航