Advertisement
Guest User

Untitled

a guest
May 27th, 2019
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.41 KB | None | 0 0
  1. import random
  2.  
  3.  
  4. def insertion(data):
  5. for i in range(len(data)):
  6. j = i - 1
  7. key = data[i]
  8. while data[j] > key and j >= 0:
  9. data[j + 1] = data[j]
  10. j -= 1
  11. data[j + 1] = key
  12. return data
  13.  
  14. def quickSort(alist):
  15. quickSortHelper(alist,0,len(alist)-1)
  16.  
  17. def quickSortHelper(alist,first,last):
  18. if first<last:
  19.  
  20. splitpoint = partition(alist,first,last)
  21.  
  22. quickSortHelper(alist,first,splitpoint-1)
  23. quickSortHelper(alist,splitpoint+1,last)
  24.  
  25.  
  26. def partition(alist, first, last):
  27. pivotvalue = alist[first]
  28.  
  29. leftmark = first+1
  30. rightmark = last
  31.  
  32. done = False
  33. while not done:
  34.  
  35. while leftmark <= rightmark and \
  36. alist[leftmark] <= pivotvalue:
  37. leftmark = leftmark + 1
  38.  
  39. while alist[rightmark] >= pivotvalue and \
  40. rightmark >= leftmark:
  41. rightmark = rightmark -1
  42.  
  43. if rightmark < leftmark:
  44. done = True
  45. else:
  46. alist[leftmark], alist[rightmark] = alist[rightmark], alist[leftmark]
  47.  
  48. alist[first], alist[rightmark] = alist[rightmark], alist[first]
  49.  
  50.  
  51.  
  52. return rightmark
  53.  
  54.  
  55. def bubbleSort(a):
  56. n = len(a)
  57. for i in range(n-1):
  58. f = 0
  59. for j in range(n-i-1):
  60. if a[j] > a[j+1]:
  61. a[j], a[j+1] = a[j+1], a[j]
  62. f = 1
  63. if f == 0:
  64. break
  65. return a
  66.  
  67. def ShakeSort(a):
  68. left = 0
  69. right = len(a) - 1
  70. while left <= right:
  71. for i in range(left,right):
  72. if a[i] > a[i + 1]:
  73. a[i], a[i +1] = a[i+1], a[i]
  74. right -= 1
  75.  
  76. for i in range(right,left,-1):
  77. if a[i] < a[i - 1]:
  78. a[i], a[i-1] = a[i-1],a[i]
  79. left += 1
  80.  
  81. return a
  82.  
  83. def gcd (a, b):
  84. return abs(a) if b == 0 else gcd(b, a % b)
  85.  
  86. def qsort(L):
  87. if L: return qsort([x for x in L if x < L[0]]) + [x for x in L if x == L[0]] + qsort([x for x in L if x > L[0]])
  88. return []
  89.  
  90. def insertion_sort_m(a):
  91. for i in range(len(a)):
  92. tmp = a[i]
  93. j = i - 1
  94. while j >= 0 and tmp < a[j]:
  95. a[j+1], a[j] = a[j], a[j+1]
  96. j -= 1
  97. return(a)
  98.  
  99.  
  100. a = [random.randint(0, 100) for i in range(10)]
  101. #a = [3, 2, 7 ,5]
  102. #a = [54,26,93,17,77,31,44,55,20]
  103. #print(a)
  104. #insertion(a)
  105. #quickSort(a)
  106. #bubbleSort(a)
  107. #ShakeSort(a)
  108. print(insertion_sort_m(a))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement