Facebook
From Soiled Hog, 6 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 238
  1. import random
  2. import time
  3.  
  4. def counting_sort(A):
  5.     k = max(A)
  6.     B = [0 for i in range (len(A))]
  7.     C = [0 for i in range (k)]
  8.        
  9.     for i in range (0, len(A)):
  10.         C[A[i]-1] += 1
  11.        
  12.     for i in range (1, k):
  13.         C[i] = C[i] + C[i-1]
  14.        
  15.     for i in reversed(range(0,len(A))):
  16.         B[C[A[i]-1]-1] = A[i]
  17.         C[A[i]-1] -= 1
  18.        
  19.     return B
  20. start = time.time()
  21. A = [1 for i in range(0, 10**7)]
  22. koniec = time.time()
  23. print(koniec-start)
  24. #A = [random.randint(1, 10**3) for i in range (10**8)]
  25.  
  26. start = time.time()
  27. B = counting_sort(A)
  28. koniec = time.time()
  29. print(koniec-start)
  30.