diff --git a/ReverseArrayInGroups.cpp b/ReverseArrayInGroups.cpp new file mode 100644 index 0000000..04f3eb1 --- /dev/null +++ b/ReverseArrayInGroups.cpp @@ -0,0 +1,29 @@ +#include +using namespace std; +//Reverse function.. +void reverse(int arr[], int n, int k) +{ + for (int i = 0; i < n; i += k) + { + int left = i; + + // when k is not multiple of n.. + int right = min(i + k - 1, n - 1); + + // reverse the sub-array [left, right] + while (left < right) + swap(arr[left++], arr[right--]); + + } +} + +int main() +{ + int arr[] = {1, 2, 3, 4, 5, 6, 7, 8}; + int k = 3; + int n = sizeof(arr) / sizeof(arr[0]); + reverse(arr, n, k); + for (int i = 0; i < n; i++) + cout << arr[i] << " "; + return 0; +}