Python快速排序

快排,取一个key值,一般取第一个即可,将小于key的放到左边,大于key的放到右边,递归实现

 1 import random

 2 def quicksort(data, low = 0, high = None):

 3     if high == None:

 4         high = len(data) - 1

 5     if low < high:

 6         s, i, j = data[low], low, high

 7         while i < j:

 8             while i < j and data[j] >= s:

 9                 j = j - 1

10             if i < j:

11                 data[i] = data[j]

12                 i = i + 1

13             while i < j and data[i] <= s:

14                 i = i + 1

15             if i < j:

16                 data[j] = data[i]

17                 j = j - 1

18         data[i] = s

19         quicksort(data, low, i - 1)

20         quicksort(data, i + 1, high)

21 

22 data=[random.randint(1,100) for i in range(100)]

23 print(data)

24 quicksort(data)

25 print(data)
View Code

 

你可能感兴趣的:(python)