10 快排
题目
快排实现
qsort.py
#!/bin/env python3
# -*- coding: utf-8 -*-
# version: Python3.X
__author__ = '__L1n__w@tch'
def qsort(a_list):
if len(a_list) == 0:
return a_list
else:
pivot = a_list[0]
small = qsort([x for x in a_list[1:] if x < pivot])
big = qsort([x for x in a_list[1:] if x >= pivot])
return small + [pivot] + big
if __name__ == "__main__":
List = [1, 3, 5, 1, 2]
print(qsort(List))
单元测试
#!/bin/env python3
# -*- coding: utf-8 -*-
# version: Python3.X
""" 单元测试快排
"""
import random
import unittest
from qsort import qsort
__author__ = '__L1n__w@tch'
class TestQSort(unittest.TestCase):
def test_qsort(self):
for i in range(30):
list_wait_to_sort = [random.randint(-1000, 1000) for i in range(100)]
self.failUnless(sorted(list_wait_to_sort) == qsort(list_wait_to_sort))
Last updated
Was this helpful?