遞歸實現快速排序法

# -*- coding: utf-8 -*-
"""
Created on Thu Apr 11 22:06:11 2019

@author: Administrator
"""

def quick1(nums):
    if len(nums) < 2:
        return nums
    mid = nums[0]
    L,R = [],[]
    for item in nums[1:]:
        if item < mid:
            L.append(item)
        else:
            R.append(item)
    return quick1(L)+[mid]+quick1(R)  

def quick2(nums):
    if len(nums) < 2:
        return nums
    mid = nums[0]
    L,R = [],[]
    for i in range(1,len(nums)):
        if nums[i] < mid:
            L.append(nums[i])
        else:
            R.append(nums[i])
    return quick2(L)+[nums[0]]+quick2(R)       
for i in quick1([5,8,9,4,1,6]):
    print (i)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章