user2848342
user2848342

Reputation: 47

How to implement a Quick Sort in Python

I have tried to do it but I can't figure it out. I have this Quick Sort that is searching at index 1 but how to I change the string at that index to ints?

def quick_sort(list):
    if not list:
        return list
    pivot = list[0]
    lesser = quick_sort([x for x in list[1:] if x[1] < pivot[1]], 1)
    greater = quick_sort([x for x in list[1:] if x[1] >= pivot[1]], 1)
    return lesser + [pivot] + greater

Any help out there?

Upvotes: 1

Views: 137

Answers (2)

Pythonist
Pythonist

Reputation: 170

Here try this out.

def quick_sort(list):
    if not list: 
        return list 
    pivot = list[0] 
    lesser = quick_sort([x for x in list[1:] if float(x[1]) < float(pivot[1])], 1) 
    greater = quick_sort([x for x in list[1:] if float(x[1]) >= float(pivot[1])], 1) 
    return lesser + [pivot] + greater

Upvotes: 2

Simeon Visser
Simeon Visser

Reputation: 122446

You don't need the index variable:

def quick_sort(list):
    if not list:
        return list
    pivot = list[0]
    lesser = quick_sort([x for x in list[1:] if x < pivot])
    greater = quick_sort([x for x in list[1:] if x >= pivot])
    return lesser + [pivot] + greater

Upvotes: 0

Related Questions