mqxym

QuickSort.py

Nov 4th, 2021 (edited)
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.80 KB | Source Code | 0 0
  1. import copy
  2. arr = [57,19,48,26,25,90,73,12,34,29,29,29,200,29,212,73,293,2,203,284,39,123,52,98]
  3.  
  4. def swap(arr, pos1, pos2):
  5.     tmp = arr[pos1]
  6.     arr[pos1] = arr[pos2]
  7.     arr[pos2] = tmp
  8.     return arr
  9.  
  10. def quicksort(arr):
  11.     p = arr[len(arr)-1] # p ist letzes Element im Array
  12.     z = 0 #Zähler für Position im Array
  13.     for i in range(len(arr)):
  14.         # print(arr[i], p, z)
  15.         if arr[i] <= p:
  16.             arr = swap(arr, i, z)
  17.             z = z+1    
  18.    
  19.     arr1 = arr[0:z-1] # Erster Teil des Arrays ohne p
  20.     arr2 = arr[z:len(arr)] #Zweiter Teil des Arrays ohne p
  21.     if len(arr1) > 1:
  22.         arr1 = quicksort(arr1)
  23.     if len(arr2) > 1:
  24.         arr2 = quicksort(arr2)
  25.        
  26.     # Sortiertes Array zusammensetzen aus arr1, p, arr2
  27.     arr0 = copy.deepcopy(arr1)
  28.     arr0.append(p)
  29.     arr0.extend(arr2)
  30.     return(arr0)
  31.    
  32. result = quicksort(arr)
  33. print(result)
  34.  
  35.  
Add Comment
Please, Sign In to add comment