/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
// your code goes here
int arr[] = {10, 7, 8, 9, 1, 5};
int p=0;
int r=5;
quickSort(arr,p,r);
printArray(arr);
}
public static void quickSort(int arr[], int p, int r) {
if (p < r) {
// System.out.println(p+" "+r);
int q = partition(arr, p, r);
quickSort(arr, p, q - 1);
quickSort(arr, q + 1, r);
}
}
public static int partition(int arr[], int p, int r) {
int pivot = arr[r];
int i = p - 1;
for (int j = p; j <= r - 1; j++) {
// System.out.println("j");
if (arr[j] <= pivot) {
i = i + 1;
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
int temp = arr[i + 1];
arr[i + 1] = arr[r];
arr[r] = temp;
return i + 1;
}
static void printArray(int arr[]) {
int n = arr.length;
for (int i = 0; i < n; ++i)
System.
out.
print(arr
[i
] + " "); }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCQlpbnQgYXJyW10gPSB7MTAsIDcsIDgsIDksIDEsIDV9OwoJCWludCBwPTA7CgkJaW50IHI9NTsKCQlxdWlja1NvcnQoYXJyLHAscik7CgkJcHJpbnRBcnJheShhcnIpOwoJfQoJcHVibGljIHN0YXRpYyB2b2lkIHF1aWNrU29ydChpbnQgYXJyW10sIGludCBwLCBpbnQgcikgewoKICAgIGlmIChwIDwgcikgewogICAgICAgIC8vIFN5c3RlbS5vdXQucHJpbnRsbihwKyIgIityKTsKICAgICAgICBpbnQgcSA9IHBhcnRpdGlvbihhcnIsIHAsIHIpOwogICAgICAgIHF1aWNrU29ydChhcnIsIHAsIHEgLSAxKTsKICAgICAgICBxdWlja1NvcnQoYXJyLCBxICsgMSwgcik7CiAgICB9Cn0KCnB1YmxpYyBzdGF0aWMgaW50IHBhcnRpdGlvbihpbnQgYXJyW10sIGludCBwLCBpbnQgcikgewogICAgaW50IHBpdm90ID0gYXJyW3JdOwogICAgaW50IGkgPSBwIC0gMTsKICAgIGZvciAoaW50IGogPSBwOyBqIDw9IHIgLSAxOyBqKyspIHsKICAgICAgICAvLyBTeXN0ZW0ub3V0LnByaW50bG4oImoiKTsKICAgICAgICBpZiAoYXJyW2pdIDw9IHBpdm90KSB7CiAgICAgICAgICAgIGkgPSBpICsgMTsKICAgICAgICAgICAgaW50IHRlbXAgPSBhcnJbaV07CiAgICAgICAgICAgIGFycltpXSA9IGFycltqXTsKICAgICAgICAgICAgYXJyW2pdID0gdGVtcDsKICAgICAgICB9CiAgICB9CiAgICBpbnQgdGVtcCA9IGFycltpICsgMV07CiAgICBhcnJbaSArIDFdID0gYXJyW3JdOwogICAgYXJyW3JdID0gdGVtcDsKICAgIHJldHVybiBpICsgMTsKfQoKc3RhdGljIHZvaWQgcHJpbnRBcnJheShpbnQgYXJyW10pIHsKICAgIGludCBuID0gYXJyLmxlbmd0aDsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgKytpKQogICAgICAgIFN5c3RlbS5vdXQucHJpbnQoYXJyW2ldICsgIiAiKTsKICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOwp9Cn0=