#include <iostream>
using namespace std;
/**
* @brief Swap the first and last half of an array, in place
* @param data The input/output array
* @param len The number of values in the array
*
* For example, the input [0, 1, 2, 3, 4, 5] would swap to [3, 4, 5, (half)0, 1, 2]
*/
void SwapArray(int *data, int len) {
// TODO(interviewee): Fill in here
int half = len/2;
for (int ii = 0; ii<half; ii++)
{
int temp = data[ii];
data[ii] = data[ii+half];
data[ii+half] = temp;
}
}
int main() {
// your code goes here
int data[10];
for (int i = 0; i < 10; i++) {
data[i] = i;
}
SwapArray(data, 10);
for (int i = 0; i < 10; i++)
printf("%d: %d\n", i, data[i]);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKLyoqCiAqIEBicmllZiBTd2FwIHRoZSBmaXJzdCBhbmQgbGFzdCBoYWxmIG9mIGFuIGFycmF5LCBpbiBwbGFjZQogKiBAcGFyYW0gZGF0YSBUaGUgaW5wdXQvb3V0cHV0IGFycmF5CiAqIEBwYXJhbSBsZW4gVGhlIG51bWJlciBvZiB2YWx1ZXMgaW4gdGhlIGFycmF5CiAqIAogKiBGb3IgZXhhbXBsZSwgdGhlIGlucHV0IFswLCAxLCAyLCAzLCA0LCA1XSB3b3VsZCBzd2FwIHRvIFszLCA0LCA1LCAoaGFsZikwLCAxLCAyXQogKi8Kdm9pZCBTd2FwQXJyYXkoaW50ICpkYXRhLCBpbnQgbGVuKSB7CgkvLyBUT0RPKGludGVydmlld2VlKTogRmlsbCBpbiBoZXJlCglpbnQgaGFsZiA9IGxlbi8yOwoJCglmb3IgKGludCBpaSA9IDA7IGlpPGhhbGY7IGlpKyspCgl7CgkJaW50IHRlbXAgPSBkYXRhW2lpXTsKCQlkYXRhW2lpXSA9IGRhdGFbaWkraGFsZl07CgkJZGF0YVtpaStoYWxmXSA9IHRlbXA7Cgl9Cn0KCmludCBtYWluKCkgewoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJaW50IGRhdGFbMTBdOwoJZm9yIChpbnQgaSA9IDA7IGkgPCAxMDsgaSsrKSB7CgkJZGF0YVtpXSA9IGk7Cgl9CgogICAgU3dhcEFycmF5KGRhdGEsIDEwKTsKCiAgICBmb3IgKGludCBpID0gMDsgaSA8IDEwOyBpKyspCiAgICAgICAgcHJpbnRmKCIlZDogJWRcbiIsIGksIGRhdGFbaV0pOwoKCXJldHVybiAwOwp9