Guest User

Untitled

a guest
Jan 22nd, 2019
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.53 KB | None | 0 0
  1. import array as arr
  2. import random
  3. import time
  4.  
  5. def arr(n):
  6. array_ = []
  7. for i in range(n):
  8. array_.append(random.randint(0,3000))
  9. return array_
  10.  
  11. def selection_sort(array_, n):
  12. start = time.time()
  13. a = array_
  14. for i in range(n-2):
  15. min = i
  16. for j in range(i+1,n-1):
  17. if a[j] < a[min]:
  18. min = j
  19. tmp = a[i]
  20. a[i] = a[min]
  21. a[min] = tmp
  22. end = time.time()
  23. time_ = end - start
  24. f.write("selectionsort: size - %d time - %d" %(n, time_))
  25. return a
  26.  
  27. def bubblesort(array_, n):
  28. start = time.time()
  29. a = array_
  30. for i in range(n-2):
  31. for j in range(n-2-i):
  32. if a[j+1] < a[j]:
  33. tmp = a[j]
  34. a[j] = a[j+1]
  35. a[j+1] = tmp
  36. end = time.time()
  37. time_ = end - start
  38. f.write("bubblesort: size - %d time - %d" %(n, time_))
  39. return a
  40.  
  41. def insertionsort(array_,n):
  42. start = time.time()
  43. a = array_
  44. for i in range(1,n):
  45. key = a[i]
  46. j = i - 1
  47. while j >= 0 and key < a[j]:
  48. a[j+1] = a[j]
  49. j = j - 1
  50.  
  51. a[j+1] = key
  52. end = time.time()
  53. time_ = end - start
  54. f.write("insertionsort: size - %d time - %d" %(n, time_))
  55. return a
  56.  
  57.  
  58. n = [1000,10000,50000]
  59. f = open("algoasst.txt","w+")
  60. for i in range(3):
  61. n_ = n[i]
  62. array_ = arr(n_)
  63. print n_
  64. selection_sort(array_, n_)
  65. bubblesort(array_,n_)
  66. insertionsort(array_,n_)
  67. '''
  68. output:
  69. selectionsort: size - 1000 time - 0 bubblesort: size - 1000 time - 0 insertionsort: size - 1000 time - 0
  70. selectionsort: size - 10000 time - 2 bubblesort: size - 10000 time - 2 insertionsort: size - 10000 time - 0
  71. selectionsort: size - 50000 time - 82 bubblesort: size - 50000 time - 100 insertionsort: size - 50000 time - 0
  72. '''
Add Comment
Please, Sign In to add comment