docs: function qsort(array, l, r, func) {
      if(l < r) {
          var i = l, j = r;
          var x = array[l];
  
          while(i < j) {
              while(i < j && func(x, array[j])) j--;
              array[i] = array[j];
              while(i < j && func(array[i], x)) i++;
              array[j] = array[i];
          }
          array[i] = x;
  
          qsort(array, l, i - 1, func);
          qsort(array, i + 1, r, func);
      }
  }