Advertisement
Guest User

Untitled

a guest
Nov 20th, 2019
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.47 KB | None | 0 0
  1.  
  2.  
  3. def merge(left, right):
  4.     output = []
  5.     il, ir = 0, 0
  6.     while il < len(left) and ir < len(right):
  7.         if left[il] < right[ir]:
  8.             output.append(left[il])
  9.             il += 1
  10.         else:
  11.             output.append(right[ir])
  12.             ir += 1
  13.     if left[il:]:
  14.         output.extend(left[il:])
  15.     if right[ir:]:
  16.         output.extend(right[ir:])
  17.     return output
  18.  
  19. def mergeSort(A, k, alg):
  20.     if len(A) <= k:
  21.         return alg(A)
  22.     middle = len(A) // 2
  23.     left = mergeSort(A[:middle], k, alg)
  24.     right = mergeSort(A[middle:], k, alg)
  25.     return merge(left, right)
  26.  
  27. def insertionSort(lst):
  28.     temp = 0
  29.     for i in range(0, len(lst)):
  30.         for j in range (0, len(lst)):
  31.             if(lst[i] < lst[j]):
  32.                 temp = lst[i]
  33.                 lst[i] = lst[j]
  34.                 lst[j] = temp
  35.     return lst
  36.  
  37. def binarySearch(lst, item, Low, High):
  38.  
  39.     if Low == High:
  40.         if lst[Low] > item:
  41.             return Low
  42.         else:
  43.             return Low + 1
  44.  
  45.     if Low > High:
  46.         return Low
  47.  
  48.     mid = (Low+High)//2
  49.  
  50.     if lst[mid] < item:
  51.         return binarySearch(lst, item, mid+1, High)
  52.     elif lst[mid] > item:
  53.         return binarySearch(lst, item, Low, mid-1)
  54.     else:
  55.         return mid
  56.    
  57.  
  58. def bSort(lst):
  59.     for i in range(1, len(lst)):
  60.         item = lst[i]
  61.         j = binarySearch(lst, item, 0, i - 1)
  62.         lst = lst[:j] + [item] + lst[j:i] + lst[i+1:]
  63.     return lst
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement