C++实现数组左旋转
数组左旋转是一种常见的操作,它将数组中的元素向左移动k个位置,其中k为给定的非负整数。这种操作有许多应用,如图像处理、数据压缩等领域。
本文将介绍如何使用C++实现数组左旋转,首先我们需要明确操作的步骤:
- 将数组前k个元素移到数组的末尾;
- 将数组后面的元素向前移动k个位置。
下面是具体的代码实现:
#include <iostream>
using namespace std;
// 数组左旋转函数
void leftRotate(int arr[], int n, int k) {
k %= n; // 如果k>n,则对n取模,避免不必要的操作
for (int i = 0; i < n; i++) {
if (i < k) { // 将数组前k个元素移到数组的末尾
swap(arr[i], arr[i + n - k]); // 交换当前元素和它后面第k个元素的位置
}
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
int k = 2;
cout << "原始数组:";
for (