// Path: java/src/main/java/kanzi/ArrayComparator.java
// public interface ArrayComparator
// {
//     // Given an array (not provided here), return how the
//     // sub-array starting at lidx compares to that starting at ridx
//     public int compare(int lidx, int ridx);
// }
// 
// Path: java/src/main/java/kanzi/IntSorter.java
// public interface IntSorter
// {
//     public boolean sort(int[] array, int idx, int len);
// }


import kanzi.ArrayComparator;
import kanzi.IntSorter;
               if (lower > k)
               {
                  lower = k;
                  break;
               }

               block[k] = pivot;

               if (block[lower] > pivot)
               {
                  upper--;
                  block[upper] = block[lower];
               }

               block[lower] = ak;
            }
            else
            {
               // Move block[k] to the right side
               block[k] = pivot;
               upper--;
               block[upper] = ak;
            }
         }

         // Swap the pivot into its final position.
         block[low] = block[lower];
         block[lower] = pivot;

         // Recursion
// Path: java/src/main/java/kanzi/ArrayComparator.java
// public interface ArrayComparator
// {
//     // Given an array (not provided here), return how the
//     // sub-array starting at lidx compares to that starting at ridx
//     public int compare(int lidx, int ridx);
// }
// 
// Path: java/src/main/java/kanzi/IntSorter.java
// public interface IntSorter
// {
//     public boolean sort(int[] array, int idx, int len);
// }


// Path: java/src/main/java/kanzi/util/sort/QuickSort.java
import kanzi.ArrayComparator;
import kanzi.IntSorter;

               if (lower > k)
               {
                  lower = k;
                  break;
               }

               block[k] = pivot;

               if (block[lower] > pivot)
               {
                  upper--;
                  block[upper] = block[lower];
               }

               block[lower] = ak;
            }
            else
            {
               // Move block[k] to the right side
               block[k] = pivot;
               upper--;
               block[upper] = ak;
            }
         }

         // Swap the pivot into its final position.
         block[low] = block[lower];
         block[lower] = pivot;

         // Recursion
         recursiveSort(block, bits|1, upper, high);