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