0
点赞
收藏
分享

微信扫一扫

Python实现快速排序的两种AC代码

number 1:

def Quick_Sort(numbers, left, right):
    if left >= right:
        return numbers
    baseNumber = numbers[left]
    i = left
    j = right
    while i != j:
        while j > i and numbers[j] >= baseNumber:
            j -= 1
        if j > i:
            numbers[i], numbers[j] = numbers[j], numbers[i]
        while i < j and numbers[i] <= baseNumber:
            i += 1
        if j > i:
            numbers[i], numbers[j] = numbers[j], numbers[i]
    Quick_Sort(numbers, left, i - 1)
    Quick_Sort(numbers, i + 1, right)

nums = list(map(int, input().split()))
Quick_Sort(nums, 0, len(nums) - 1)
print(nums)

number 2:

n = int(input())
nums = list(map(int, input().split()))
def quick_sort(nums):
    if len(nums) <= 1:
        return nums
    mid = nums[len(nums) // 2]
    left = [x for x in nums if x < mid]
    right = [x for x in nums if x > mid]
    return quick_sort(left) + [mid] + quick_sort(right)
if __name__ == "__main__":
    nums = quick_sort(nums)
    print(" ".join(list(map(str, nums))))
举报

相关推荐

0 条评论