Code without using a temporary array, but using the swapping technique. Following the syntax of MingW compiler.
#include "iostream"
using std::cout;
void swap(int &n1, int &n2)
{
int t = n1;
n1 = n2;
n2 = t;
}
int main()
{
const int size = 10;
int array[size]={6,7,8,9,10,1,2,3,4,5};
int j = size/2;
for (int i = 0; i < size/2; ++i,++j)
swap(array[i], array[j]);
for (int i = 0; i < size; ++i)
cout << array[i] << " ";
return 0;
}
Same code with little syntactic changes in the code for Turbo C++ compiler.
#include "iostream.h"
#include "conio.h"
void swap(int &n1, int &n2)
{
int t = n1;
n1 = n2;
n2 = t;
}
void main()
{
clrscr();
const int size = 10;
int array[size]={6,7,8,9,10,1,2,3,4,5};
int j = size/2;
int i;
for (i = 0; i < size/2; ++i,++j)
swap(array[i], array[j]);
for (i = 0; i < size; ++i)
cout << array[i] << " ";
getch();
}
Using another algorithm but not that much efficient as compared to above mentioned, also the implementation is in Turbo C++ styled Syntax only, one can easily port it to MingW or Visual studio rest is same, i.e, keywords and for loops e.t.c,
#include "iostream.h"
#include "conio.h"
void main()
{
clrscr();
const int size = 10;
int array[size]={6,7,8,9,10,1,2,3,4,5};
int array2[size];
int i,j;
for(i = 0, j = 5; i < size/2; ++i)
array2[i] = array[j++];
for (i = 5, j = 0; i < size; ++i)
array2[i] = array[j++];
i=size;
while(i)
array[i] = array2[--i];
for (i = 0; i < size; ++i)
cout << array[i] << " ";
getch();
}
Algorithm efficient, (the swap one) but now implemented in Java. Conditions, loops, if e.t.c works same as in C++ but the syntax is different + Java has got some really easy to understand exceptional handling like the "Widely used exception when playing with arrays is 'ArrayIndexOutOfBoundsException' that doesn't let you access the memory you didn't allocate, hence no infinite loops and you don't get you RAM dumped!" But In Java you don't have access to pointers so there's no pass by reference :( hence no same function as in C++ for swapping in Java but it can be achieved but no pass by reference, tho Array to functions is automatically passed by reference to save the memory ;)
/**
* @author B1nary Geek ;)
* As far as the ar.length is concerned, yes Java is damn
* genius ;)
*/
public class Main {
public static void main(String[] args) {
int[] ar = {6,7,8,9,10,1,2,3,4,5};
int temp, j = 5;
try {
for(int i = 0; i < ar.length/2; i++) {
temp = ar[j];
ar[j++]= ar[i];
ar[i]= temp;
}
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("You are trying to access" +
"the memory you didn\'t allocate.");
}
try {
for(j = 0; j < ar.length; j++)
System.out.print(ar[j] + " ");
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("You are trying to access" +
"the memory you didn\'t allocate.");
}
}
}
No download links today, may be I put the download links sometime later.