Create solution_01.py
quicksort
This commit is contained in:
parent
500a31afac
commit
3b8781da03
21
CH_05_functional_programming/exercise_01/solution_01.py
Normal file
21
CH_05_functional_programming/exercise_01/solution_01.py
Normal file
@ -0,0 +1,21 @@
|
||||
import random
|
||||
|
||||
|
||||
def quicksort(nums, left=None, right=None):
|
||||
if right <= left:
|
||||
return
|
||||
j = left
|
||||
temp = nums[right]
|
||||
for i in range(left, right):
|
||||
if nums[i] < temp:
|
||||
nums[i], nums[j] = nums[j], nums[i]
|
||||
j += 1
|
||||
nums[j], nums[right] = nums[right], nums[j]
|
||||
quicksort(nums, left, j-1)
|
||||
quicksort(nums, j+1, right)
|
||||
return nums
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
nums = [random.randint(1, 100000) for _ in range(10000)]
|
||||
assert sorted(nums) == quicksort(nums, 0, len(nums)-1)
|
||||
Loading…
x
Reference in New Issue
Block a user