Advertisement
ExaGridDba

Python quicksort

Apr 28th, 2014
264
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.69 KB | None | 0 0
  1. def qsort( ary , left, right ):
  2.     l=left
  3.     r=right
  4.     ipivot = int ( ( l + r ) / 2 )
  5.     pivot = ary [ ipivot ]
  6.  
  7.     while True:
  8.         while ary [ l ] < pivot and l < right:
  9.             l += 1
  10.         while pivot < ary [ r ] and r > 0:
  11.             r -= 1
  12.         if l <= r:
  13.             temp = ary [ l ]
  14.             ary [ l ] = ary [ r ]
  15.             ary [ r ] = temp
  16.             l += 1
  17.             r -= 1
  18.         if l > r:
  19.             break
  20.     if left < r:
  21.         qsort ( ary, left , r  )
  22.     if l < right:
  23.         qsort ( ary , l, right )
  24.  
  25. ary= [ 12, 5, 1, 7, 5, 3, 2, 2, 13, 7, 3, 3, 3, 2, 8, 1 , 2, 3, 4 ]
  26. print ( ary )
  27. qsort( ary, 0, len( ary ) - 1 )
  28. print ( ary )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement