In general we will iterate the array using one pointer starting from the first element and ending at the last element.
Sometimes we need two pointers at the same time one pointer from starting element and the other element from the last element.
Example :
Reverse the Array :
Here we will swap the first element with last one until it reaches the middle position.
We use two pointers at the same time to do the iteration :
One starts from the first element and the other pointer starts from the last element .
Swapping takes places until the two pointers meet each other.
Output :
Sometimes we need two pointers at the same time one pointer from starting element and the other element from the last element.
Example :
Reverse the Array :
Here we will swap the first element with last one until it reaches the middle position.
We use two pointers at the same time to do the iteration :
One starts from the first element and the other pointer starts from the last element .
Swapping takes places until the two pointers meet each other.
package com.techyield.operationsinarray;
public class ReverseArrayUsingTwoPointers {
public static void main(String[] args) {
int a[] = {1,2,3,4,5,6,7,8,9,10};
int i = 0;
int j = a.length-1;
int temp = 0;
while(i<j) {
temp = a[i];
a[i] = a[j];
a[j] = temp;
i++;
j--;
}
for(int b : a)
System.out.print(" "+b);
}
}
Output :
10 9 8 7 6 5 4 3 2 1
NOTE:
Scenarios where you need to use two-pointer technique:
1. Iterate the array from two ends to middle.
2. One pointer starts from the beginning while the other pointer starts from the end.
So this technique often we use in sorted array .