设计一个时间复杂度为O(n)的算法,实现将A[n]中所有元素循环左移k个位置:
实现代码:
#include <iostream>
using namespace std;
int main()
{
int A[7] = { 1 , 2 , 3 , 4 , 5 , 6 , 7 };
int n = 7 ;
/* int n; //自己输入数组
cout<<"请输入数组的长度:"
cin>>n;
int * A = new int[n];
cout<<"请输入输入的各个元素:"<<endl;
for(int i = 0 ; i < n ; i++)
cin>>A[i]; */
int k;
cout<<"情输入数组所有元素向左移了几个单位:";
cin>>k;
int kk = k % n ; //对于大于数组长度的进行取余
for(int i = kk ; i < n ; i++)
cout<<A[i];
for(int i = 0 ; i < kk ; i++)
cout<<A[i];
}