/* 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 ((end-start) < 2) { return; }
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;
System.
out.
println("pivot: " + pivot
); System.
out.
println("array[pIndex]: " + array
[pIndex
]); 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
] + " "); }
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKcHVibGljIHN0YXRpYyB2b2lkIHF1aWNrc29ydChpbnRbXSBhcnJheSwgaW50IHN0YXJ0LCBpbnQgZW5kKSB7CglpZiAoKGVuZC1zdGFydCkgPCAyKSB7IHJldHVybjsgfQoJCWZvciAoaW50IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHsKCQkJU3lzdGVtLm91dC5wcmludChhcnJheVtpXSArICIgIik7CgkJfQoJCVN5c3RlbS5vdXQucHJpbnRsbigpOwoJCWludCBwSW5kZXggPSBwYXJ0aXRpb24oYXJyYXksIHN0YXJ0LCBlbmQpOwoJCXF1aWNrc29ydChhcnJheSwgc3RhcnQsIHBJbmRleCAtIDEpOwoJCXF1aWNrc29ydChhcnJheSwgcEluZGV4ICsgMSwgZW5kKTsKCQp9CgkKcHVibGljIHN0YXRpYyBpbnQgcGFydGl0aW9uKGludFtdIGFycmF5LCBpbnQgc3RhcnQsIGludCBlbmQpIHsKCWludCBwaXZvdCA9IGFycmF5W2VuZF07CglpbnQgcEluZGV4ID0gc3RhcnQ7CglTeXN0ZW0ub3V0LnByaW50bG4oInBpdm90OiAiICsgcGl2b3QpOwoJU3lzdGVtLm91dC5wcmludGxuKCJhcnJheVtwSW5kZXhdOiAiICsgYXJyYXlbcEluZGV4XSk7Cglmb3IgKGludCBpID0gc3RhcnQ7IGkgPD0gZW5kIC0gMTsgaSsrKSB7CgkJaWYgKGFycmF5W2ldIDw9IHBpdm90KSB7CgkJCWludCB0bXAgPSBhcnJheVtwSW5kZXhdOyAgLy8gc3dhcCB2YWx1ZXMKCQkJYXJyYXlbcEluZGV4XSA9IGFycmF5W2ldOwoJCQlhcnJheVtpXSA9IHRtcDsKCQkJcEluZGV4Kys7CgkJfQoJfQoJaW50IHRtcFZhbCA9IGFycmF5W3BJbmRleF07CglhcnJheVtwSW5kZXhdID0gcGl2b3Q7CglhcnJheVtlbmRdID0gdG1wVmFsOwoJcmV0dXJuIHBJbmRleDsKfQoJCglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCgkJaW50W10gYXJyYXkgPSB7NywgNSwgMywgNiwgOCwgMSwgMiwgNH07CgkJcXVpY2tzb3J0KGFycmF5LCAwLCBhcnJheS5sZW5ndGggLSAxKTsKCQlmb3IgKGludCBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7CgkJCVN5c3RlbS5vdXQucHJpbnQoYXJyYXlbaV0gKyAiICIpOwoJCX0KCX0KfQ==