摘要: 问题:将一个n维向量向左循环移位m位。如向量0,1,2,3,4,5,6,7,8,9向左循环移位3位,结果是3,4,5,6,7,8,9,0,1,2。方法1:每次循环移位1位,执行m次。辅助空间1,时间复杂度O(n*m)方法2:用m维的辅助空间暂存前m个元素,对剩下的n-m个元素进行移位,最后将m个元素移动向量末尾。辅助空间m,时间复杂度O(n)。//方法1 int temp; for(int i=0; i<m; i++) { temp = a[0]; for(int j=0; j<n-1; j++) a[j]=a[j+1]; a[n-1] = temp; } //方法2 int t[ 阅读全文
posted @ 2010-11-08 11:20 liyuxia713 阅读(206) 评论(0) 推荐(0) 编辑