code: private static void sort(int[] intArray, int start, int end, boolean descending) {
          if(start >= end) {
              return ;
          }
  
          int pivot = 0;
          
          if(descending) {
              pivot = Quicksort.partitionDescending(intArray, start, end);
          }
          else {
              pivot = Quicksort.partition(intArray, start, end);
          }
          
          Quicksort.sort(intArray, start, pivot - 1, descending);
          Quicksort.sort(intArray, pivot + 1, end, descending);   
      }
docs: Sort routine that recursively calls itself after the partition algorithm sorted the elements
  in order. This routine is used for both the ascending and descending algorithms. The only
  difference is the call to the partition algorithm.
  
  @param intArray array that we want to sort
  @param start index of the starting point to sort
  @param end index of the end point to sort
  @param descending boolean value that determines if we want to do descending sort