设计一个时间复杂度为O(n)的算法,实现将数组arr[n]中所有元素循环左移k个位置


#include 
using namespace std;
void Reverse(int arr[], int from, int to) { //将数组arr中元素从from到to逆置
    for ((1))  //填空
        (2); //填空,交换元素
}
void Converse(int arr[], int n, int k) {
    Reverse(arr, 0, k - 1);//调用函数
    Reverse(arr, k, n - 1);
    Reverse(arr, 0, n - 1);
}
int main() {
    int n, m;
    cout << "请输入数组元素个数:";
    cin >> n;
    int* arr = (3//填空,创建数组
        cout << "请输入" << n << "个数组元素:" << endl;
    for (int i = 0; i < n; i++)
        (4//填空,输入数组元素
        cout << "请输入数组左移位置数:";
    cin >> m;
    (5//填空,调用左移函数
        cout << "数组循环左移" << m << "个位置后,数组元素为:" << endl;
    for (int j = 0; j < n; j++)
        cout << arr[j] << "  ";
    return 0;
}

请问这个几个填空怎么填

(5)简单,调用函数

Converse(arr[],n,m);

(4)也简单,输入

cin>>arr[i];

#include <iostream>

using namespace std;

void Reverse(int arr[], int from, int to)
{                                      //将数组arr中元素从from到to逆置
    for (; from < to; from++, to--)    //填空
        std::swap(arr[from], arr[to]); //填空,交换元素
}

void Converse(int arr[], int n, int k)
{
    Reverse(arr, 0, k - 1); //调用函数
    Reverse(arr, k, n - 1);
    Reverse(arr, 0, n - 1);
}

int main()
{
    int n, m;
    cout << "请输入数组元素个数:";
    cin >> n;
    int *arr = new int[n]; //填空,创建数组
    cout << "请输入" << n << "个数组元素:" << endl;
    for (int i = 0; i < n; i++)
        cin >> arr[i]; //填空,输入数组元素
    cout << "请输入数组左移位置数:";
    cin >> m;
    Converse(arr, n, m); //填空,调用左移函数
    cout << "数组循环左移" << m << "个位置后,数组元素为:" << endl;
    for (int j = 0; j < n; j++)
        cout << arr[j] << "  ";
    return 0;
}