摘要:
问题:将一个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[ 阅读全文