Skip to content

Instantly share code, notes, and snippets.

@bzdgn
Last active April 1, 2016 15:21
Show Gist options
  • Select an option

  • Save bzdgn/60830d4964e3d1044e0e94212dde43c6 to your computer and use it in GitHub Desktop.

Select an option

Save bzdgn/60830d4964e3d1044e0e94212dde43c6 to your computer and use it in GitHub Desktop.
In-Place Swap Demo
import java.util.Arrays;
public class InPlaceSwapDemo {
public static void main(String[] args) {
int[] numbers = {3, 7};
char[] str = {'b', 'z'};
System.out.println("int In-Place Swap");
System.out.println(Arrays.toString(numbers));
inPlaceSwap(numbers, 0, 1);
System.out.println(Arrays.toString(numbers));
System.out.println("\nint In-Place Xor-Swap");
System.out.println(Arrays.toString(numbers));
inPlaceXorSwap(numbers, 0, 1);
System.out.println(Arrays.toString(numbers));
System.out.println("\nchar In-Place Swap");
System.out.println(Arrays.toString(str));
inPlaceSwap(str, 0, 1);
System.out.println(Arrays.toString(str));
System.out.println("\nchar In-Place Xor-Swap");
System.out.println(Arrays.toString(str));
inPlaceXorSwap(str, 0, 1);
System.out.println(Arrays.toString(str));
}
private static void inPlaceSwap(int[] numbers, int x, int y) {
numbers[x] = numbers[x] + numbers[y];
numbers[y] = numbers[x] - numbers[y];
numbers[x] = numbers[x] - numbers[y];
}
private static void inPlaceXorSwap(int[] numbers, int x, int y) {
numbers[x] = numbers[x] ^ numbers[y];
numbers[y] = numbers[y] ^ numbers[x];
numbers[x] = numbers[x] ^ numbers[y];
}
private static void inPlaceSwap(char[] string, int x, int y) {
string[x] = (char)( (int)string[x] + (int)string[y] );
string[y] = (char)( (int)string[x] - (int)string[y] );
string[x] = (char)( (int)string[x] - (int)string[y] );
}
private static void inPlaceXorSwap(char[] string, int x, int y) {
string[x] = (char)( (int)string[x] ^ (int)string[y] );
string[y] = (char)( (int)string[x] ^ (int)string[y] );
string[x] = (char)( (int)string[x] ^ (int)string[y] );
}
}
@bzdgn

bzdgn commented Apr 1, 2016

Copy link
Copy Markdown
Author

Output;

int In-Place Swap
[3, 7]
[7, 3]

int In-Place Xor-Swap
[7, 3]
[3, 7]

char In-Place Swap
[b, z]
[z, b]

char In-Place Xor-Swap
[z, b]
[b, z]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment