//bubble sort
import java.util.*;
import java.lang.*;
import java.io.*;
class Ideone {
int [] arr = {65,43,32,21,12,34,45,76,99,86,33,66,22,88,10};
BNode bNode = new bNode();
// bubbleSort(arr);
// selectionSort(arr);
// insertionSort(arr);
// quickSort(arr, 0, (arr.length - 1));
// printArray (arr);
}
public static void printArray (int [] arr) {
for (int i = 0; i < arr.length; i++) {
}
}
public static void quickSort (int [] arr, int l, int r) {
if (l == r) {
return;
}
int pivot = l + ((r - l) / 2);
System.
out.
println("pivot: " + pivot
+ ", " + arr
[pivot
]); int p1 = l;
int p2 = r;
int wall = l;
swap (arr, pivot, r);
for (int i = l; i < r; i++) {
if (arr[i] < arr[r] && i < pivot) {
swap (arr, wall + 1, i);
wall++;
}
swap (arr, wall, r);
}
// quickSort (arr, l, pivot);
// quickSort (arr, (pivot + 1), r);
}
public static void insertionSort (int [] arr) {
for (int i = 1; i < arr.length; i++) {
int temp = arr[i];
int j = i - 1;
for (; j >= 0; j--) {
if (arr[j] > temp) {
arr[j + 1] = arr[j];
}
else {
break;
}
}
arr[j] = temp;
}
}
public static void selectionSort (int [] arr) {
for (int i = 0; i < arr.length; i++) {
int min = arr[i];
int index = i;
for (int j = i+1; j < arr.length; j++) {
if (arr[j] <= min) {
min = arr[j];
index = j;
}
}
swap(arr, i, index);
}
}
public static void swap (int[] arr, int i, int j) {
if (i != j) {
arr[j] = arr[j] + arr[i];
arr[i] = arr[j] - arr[i];
arr[j] = arr[j] - arr[i];
}
}
public static void bubbleSort(int [] arr) {
int sz = arr.length;
for (int i = 0; i < sz; i++) {
for (int j = 0; j < i; j++) {
if (arr[j] > arr[i]) {
swap(arr, i, j);
}
}
}
}
}
class BNode {
int data;
BNode left;
BNode right;
public BNode (int data) {
this.data = data;
}
public void add () {
}
}
Ly9idWJibGUgc29ydAoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgpjbGFzcyBJZGVvbmUgewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uIHsKCQlpbnQgW10gYXJyID0gezY1LDQzLDMyLDIxLDEyLDM0LDQ1LDc2LDk5LDg2LDMzLDY2LDIyLDg4LDEwfTsKCQkKCQkKCQlCTm9kZSBiTm9kZSA9IG5ldyBiTm9kZSgpOwoJCQoJCS8vIGJ1YmJsZVNvcnQoYXJyKTsKCQkvLyBzZWxlY3Rpb25Tb3J0KGFycik7CgkJLy8gaW5zZXJ0aW9uU29ydChhcnIpOwoJCS8vIHF1aWNrU29ydChhcnIsIDAsIChhcnIubGVuZ3RoIC0gMSkpOwoJCQoJCS8vIHByaW50QXJyYXkgKGFycik7Cgl9CgkKCXB1YmxpYyBzdGF0aWMgdm9pZCBwcmludEFycmF5IChpbnQgW10gYXJyKSB7CgkJZm9yIChpbnQgaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpKyspIHsKCQkJU3lzdGVtLm91dC5wcmludGxuKGFycltpXSk7CgkJfQoJfQoJCglwdWJsaWMgc3RhdGljIHZvaWQgcXVpY2tTb3J0IChpbnQgW10gYXJyLCBpbnQgbCwgaW50IHIpIHsKCQlpZiAobCA9PSByKSB7CgkJCXJldHVybjsKCQl9CgkJaW50IHBpdm90ID0gbCArICgociAtIGwpIC8gMik7CgkJU3lzdGVtLm91dC5wcmludGxuKCJwaXZvdDogIiArIHBpdm90ICsgIiwgIiArIGFycltwaXZvdF0pOwoJCWludCBwMSA9IGw7CgkJaW50IHAyID0gcjsKCQlpbnQgd2FsbCA9IGw7CgkJc3dhcCAoYXJyLCBwaXZvdCwgcik7CgkJCgkJZm9yIChpbnQgaSA9IGw7IGkgPCByOyBpKyspIHsKCQkJaWYgKGFycltpXSA8ICBhcnJbcl0gJiYgaSA8IHBpdm90KSB7CgkJCQlzd2FwIChhcnIsIHdhbGwgKyAxLCBpKTsKCQkJCXdhbGwrKzsKCQkJfQoJCQlzd2FwIChhcnIsIHdhbGwsIHIpOwoJCX0KCQkvLyBxdWlja1NvcnQgKGFyciwgbCwgcGl2b3QpOwoJCS8vIHF1aWNrU29ydCAoYXJyLCAocGl2b3QgKyAxKSwgcik7CgkJCgl9CgkKCXB1YmxpYyBzdGF0aWMgdm9pZCBpbnNlcnRpb25Tb3J0IChpbnQgW10gYXJyKSB7CgkJZm9yIChpbnQgaSA9IDE7IGkgPCBhcnIubGVuZ3RoOyBpKyspIHsKCQkJaW50IHRlbXAgPSBhcnJbaV07CgkJCWludCBqID0gaSAtIDE7CgkJCWZvciAoOyBqID49IDA7IGotLSkgewoJCQkJaWYgKGFycltqXSA+IHRlbXApIHsKCQkJCQlhcnJbaiArIDFdID0gYXJyW2pdOwoJCQkJfQoJCQkJZWxzZSB7CgkJCQkJYnJlYWs7CgkJCQl9CgkJCX0KCQkJYXJyW2pdID0gdGVtcDsKCQl9Cgl9CgkKCXB1YmxpYyBzdGF0aWMgdm9pZCBzZWxlY3Rpb25Tb3J0IChpbnQgW10gYXJyKSB7CgkJZm9yIChpbnQgaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpKyspIHsKCQkJaW50IG1pbiA9IGFycltpXTsKCQkJaW50IGluZGV4ID0gaTsKCQkJZm9yIChpbnQgaiA9IGkrMTsgaiA8IGFyci5sZW5ndGg7IGorKykgewoJCQkJaWYgKGFycltqXSA8PSBtaW4pIHsKCQkJCQltaW4gPSBhcnJbal07CgkJCQkJaW5kZXggPSBqOwoJCQkJfQoJCQl9CgkJCXN3YXAoYXJyLCBpLCBpbmRleCk7CgkJfQoJfQoKCXB1YmxpYyBzdGF0aWMgdm9pZCBzd2FwIChpbnRbXSBhcnIsIGludCBpLCBpbnQgaikgewoJCWlmIChpICE9IGopIHsKCQkJYXJyW2pdID0gYXJyW2pdICsgYXJyW2ldOwoJCQlhcnJbaV0gPSBhcnJbal0gLSBhcnJbaV07CgkJCWFycltqXSA9IGFycltqXSAtIGFycltpXTsKCQl9Cgl9CgkKCXB1YmxpYyBzdGF0aWMgdm9pZCBidWJibGVTb3J0KGludCBbXSBhcnIpIHsKCQlpbnQgc3ogPSBhcnIubGVuZ3RoOwoJCQoJCWZvciAoaW50IGkgPSAwOyBpIDwgc3o7IGkrKykgewoJCQlmb3IgKGludCBqID0gMDsgaiA8IGk7IGorKykgewoJCQkJaWYgKGFycltqXSA+IGFycltpXSkgewoJCQkJCXN3YXAoYXJyLCBpLCBqKTsKCQkJCX0KCQkJfQoJCX0KCX0KfQoKY2xhc3MgQk5vZGUgewoJaW50IGRhdGE7CglCTm9kZSBsZWZ0OwoJQk5vZGUgcmlnaHQ7CgkKCXB1YmxpYyBCTm9kZSAoaW50IGRhdGEpIHsKCQl0aGlzLmRhdGEgPSBkYXRhOwoJfQoJCglwdWJsaWMgdm9pZCBhZGQgKCkgewoJCQoJfQp9