new_contents: """Sleepsort is probably the wierdest of all sorting functions
  with time-complexity of O(max(input)+n) which is
  quite different from almost all other sorting techniques.
  If the number of inputs is small then the complexity
  can be approximated to be O(max(input)) which is a constant
  
  If the number of inputs is large, the complexity is
  approximately O(n).
  
  This function uses multithreading a kind of higher order programming
  and calls n functions, each with a sleep time equal to its number.
  Hence each of the functions wake in sorted form.
  
  This function is not stable for very large values.
  
  https://rosettacode.org/wiki/Sorting_algorithms/Sleep_sort
  """
  
  from time import sleep
  from threading import Timer
  from typing import List
  
  
  def sleepsort(values: List[int]) -> List[int]:
      """
      Sort the list using sleepsort.
      >>> sleepsort([3, 2, 4, 7, 3, 6, 9, 1])
      [1, 2, 3, 3, 4, 6, 7, 9]
      >>> sleepsort([3, 2, 1, 9, 8, 4, 2])
      [1, 2, 2, 3, 4, 8, 9]
      """
      sleepsort.result = []
      def append_to_result(x):
          sleepsort.result.append(x)
      mx = values[0]
      for v in values:
          if mx < v:
              mx = v
          Timer(v, append_to_result, [v]).start()
      sleep(mx+1)
      return sleepsort.result
   
  if __name__ == '__main__':
      import doctest
      doctest.testmod()
      x = [3, 2, 4, 7, 3, 6, 9, 1]
      sorted_x = sleepsort(x)
      print(sorted_x)
  
subject: Add sleep-sort (#1867)