/* 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
{
public static void quicksort(int[] array, int start, int end) {
if (start < end) {
for (int i = 0; i < array.length; i++) {
System.
out.
print(array
[i
] + " "); }
int pIndex = partition(array, start, end);
quicksort(array, start, pIndex - 1);
quicksort(array, pIndex + 1, end);
}
}
public static int partition(int[] array, int start, int end) {
int pivot = array[end];
int pIndex = start;
for (int i = start; i <= end - 1; i++) {
if (array[i] <= pivot) {
int tmp = array[pIndex]; // swap values
array[pIndex] = array[i];
array[i] = tmp;
pIndex++;
}
}
int tmpVal = array[pIndex];
array[pIndex] = pivot;
array[end] = tmpVal;
return pIndex;
}
{
// your code goes here
int[] array = {7, 5, 3, 6, 8, 1, 2, 4};
quicksort(array, 0, array.length - 1);
for (int i = 0; i < array.length; i++) {
System.
out.
print(array
[i
] + " "); }
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKcHVibGljIHN0YXRpYyB2b2lkIHF1aWNrc29ydChpbnRbXSBhcnJheSwgaW50IHN0YXJ0LCBpbnQgZW5kKSB7CglpZiAoc3RhcnQgPCBlbmQpIHsKCQlmb3IgKGludCBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7CgkJCVN5c3RlbS5vdXQucHJpbnQoYXJyYXlbaV0gKyAiICIpOwoJCX0KCQlTeXN0ZW0ub3V0LnByaW50bG4oKTsKCQlpbnQgcEluZGV4ID0gcGFydGl0aW9uKGFycmF5LCBzdGFydCwgZW5kKTsKCQlxdWlja3NvcnQoYXJyYXksIHN0YXJ0LCBwSW5kZXggLSAxKTsKCQlxdWlja3NvcnQoYXJyYXksIHBJbmRleCArIDEsIGVuZCk7Cgl9Cn0KCQpwdWJsaWMgc3RhdGljIGludCBwYXJ0aXRpb24oaW50W10gYXJyYXksIGludCBzdGFydCwgaW50IGVuZCkgewoJaW50IHBpdm90ID0gYXJyYXlbZW5kXTsKCWludCBwSW5kZXggPSBzdGFydDsKCWZvciAoaW50IGkgPSBzdGFydDsgaSA8PSBlbmQgLSAxOyBpKyspIHsKCQlpZiAoYXJyYXlbaV0gPD0gcGl2b3QpIHsKCQkJaW50IHRtcCA9IGFycmF5W3BJbmRleF07ICAvLyBzd2FwIHZhbHVlcwoJCQlhcnJheVtwSW5kZXhdID0gYXJyYXlbaV07CgkJCWFycmF5W2ldID0gdG1wOwoJCQlwSW5kZXgrKzsKCQl9Cgl9CglpbnQgdG1wVmFsID0gYXJyYXlbcEluZGV4XTsKCWFycmF5W3BJbmRleF0gPSBwaXZvdDsKCWFycmF5W2VuZF0gPSB0bXBWYWw7CglyZXR1cm4gcEluZGV4Owp9CgkKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCQlpbnRbXSBhcnJheSA9IHs3LCA1LCAzLCA2LCA4LCAxLCAyLCA0fTsKCQlxdWlja3NvcnQoYXJyYXksIDAsIGFycmF5Lmxlbmd0aCAtIDEpOwoJCWZvciAoaW50IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHsKCQkJU3lzdGVtLm91dC5wcmludChhcnJheVtpXSArICIgIik7CgkJfQoJfQp9