docs: private static <E extends Comparable<E>> void sort(List<E> list, int start, int end, boolean descending) {
          if(start == end) {
              return ;
          }
          
          int middle = (start + end) >> 1;
          
          Merge.sort(list, start, middle, descending);
          Merge.sort(list, middle + 1, end, descending);
          
          if(descending) {
              Merge.mergeDescending(list, start, middle, end);                        
          }
          else {
              Merge.merge(list, start, middle, end);            
          }
      }