Advertisement
Guest User

Untitled

a guest
Oct 21st, 2018
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.61 KB | None | 0 0
  1. #biblioteki
  2. import random
  3. from timeit import timeit
  4. import copy
  5. import numpy
  6.  
  7. #Zmienna zakresu testów:
  8. ### UWAGA ###
  9. # Dla wartosci 999 wykonanie testow trwa dosc dlugo!!!!!!!! #
  10. testRange= 99;
  11.  
  12. #definicje
  13. def quick_sort(inputList: list, start: int, stop: int):
  14. i=start;
  15. j=stop;
  16.  
  17.  
  18. pivot = inputList[int((stop+start-1)/2)]
  19. while(i<j):
  20. while(inputList[i]<pivot):
  21. i=i+1;
  22. while(inputList[j]>pivot):
  23. j=j-1;
  24. if(i<=j):
  25. inputList[i], inputList[j]=inputList[j], inputList[i];
  26. i=i+1;
  27. j=j-1;
  28. if(start<j):
  29. quick_sort(inputList, start, j);
  30. if (i<stop):
  31. quick_sort(inputList, i, stop);
  32.  
  33.  
  34.  
  35. def bubble_sort(inputList: list) :
  36. n = len(inputList)
  37. sortFlag = 0
  38. while(n>1):
  39. for i in range(1,n):
  40. if(inputList[i-1]>inputList[i]):
  41. sortFlag = 1
  42. inputList[i-1], inputList[i] = inputList[i], inputList[i-1]
  43. n=n-1;
  44. if(sortFlag == 1):
  45. return
  46.  
  47.  
  48.  
  49.  
  50. ####TESTY#########
  51.  
  52. #listy z czasami prob:
  53. bubbleTime =[0] * (testRange+1);
  54. quickTime = [0] * (testRange+1);
  55.  
  56.  
  57.  
  58.  
  59. #lista posortowana:
  60. list1=list(range(0, (testRange+1)));
  61. list2=list(range(0, (testRange+1)));
  62. for i in range(0,testRange):
  63. t1_bubble = timeit ( "bubble_sort(list1)" , number =1 , globals = globals ())
  64. t2_quick = timeit ( "quick_sort(list2,0, testRange)" , number =1 , globals = globals ())
  65. bubbleTime[i]=t1_bubble;
  66. quickTime[i]=t2_quick;
  67. print('Sredni czas sortowania listy juz posortowanej dla quick-sort to: {:f}ms, a dla bubble-sort to: {:f}ms'.format(numpy.average(quickTime)*1000,numpy.average(bubbleTime)*1000));
  68.  
  69.  
  70. #lista posortowana odwrotnie:
  71. list1=list(range(testRange, -1, -1));
  72. list2=list(range(testRange, -1, -1));
  73. for i in range(0,testRange):
  74. t1_bubble = timeit ( "bubble_sort(list1)" , number =1 , globals = globals ())
  75. t2_quick = timeit ( "quick_sort(list2,0, testRange)" , number =1 , globals = globals ())
  76. bubbleTime[i]=t1_bubble;
  77. quickTime[i]=t2_quick;
  78. print('Sredni czas sortowania listy posortowanej odwrotnie dla quick-sort to: {:f}ms, a dla bubble-sort to: {:f}ms'.format(numpy.average(quickTime)*1000,numpy.average(bubbleTime)*1000));
  79.  
  80.  
  81.  
  82. #lista elementow o tej samej wartosci:
  83. x=random.sample(range(10),k=1);
  84. list1 = [x] *(testRange+1) ;
  85. list2=copy.deepcopy(list1);
  86. for i in range(0,testRange):
  87. t1_bubble = timeit ( "bubble_sort(list1)" , number =1 , globals = globals ())
  88. t2_quick = timeit ( "quick_sort(list2,0, testRange)" , number =1 , globals = globals ())
  89. bubbleTime[i]=t1_bubble;
  90. quickTime[i]=t2_quick;
  91. print('Sredni czas sortowania listy o tych samych elementach dla quick-sort to: {:f}ms, a dla bubble-sort to: {:f}ms'.format(numpy.average(quickTime)*1000,numpy.average(bubbleTime)*1000));
  92.  
  93.  
  94.  
  95.  
  96. #rozne wartosci:
  97. for i in range(0,testRange):
  98. list1 = random.sample(range((testRange+1)*10),k=(testRange+1));
  99. list2=copy.deepcopy(list1);
  100. t1_bubble = timeit ( "bubble_sort(list1)" , number =1 , globals = globals ())
  101. t2_quick = timeit ( "quick_sort(list2, 0, testRange)", number =1 , globals = globals ())
  102. bubbleTime[i]=t1_bubble;
  103. quickTime[i]=t2_quick;
  104. print('Sredni czas sortowania listy o roznych wartosciach dla quick-sort to: {:f}ms, a dla bubble-sort to: {:f}ms'.format(numpy.average(quickTime)*1000,numpy.average(bubbleTime)*1000));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement