测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A58701. 从键盘接收一组不重复整数,并将这组整数按从小到大的顺序排列。以下程序采取快速排序法对这组整数进行排序。快速排序法的原理是:(1)取这组数据中间那个数为锚定值mid;(2)从这组数据开头往右找,遇到比mid大的数则停下,位置记为i;(3)从这组数据末尾往左找,遇到比mid小的数则停下,位置记为j;(4)如果此时i仍在j左边,即i<=j,则交换这两个数;(5)重复(2)~(4)直到i、j重合;…

编程题

题目描述

从键盘接收一组不重复整数,并将这组整数按从小到大的顺序排列。

以下程序采取快速排序法对这组整数进行排序。

快速排序法的原理是:

(1)取这组数据中间那个数为锚定值mid;

(2)从这组数据开头往右找,遇到比mid大的数则停下,位置记为i;

(3)从这组数据末尾往左找,遇到比mid小的数则停下,位置记为j;

(4)如果此时i仍在j左边,即i<=j,则交换这两个数;

(5)重复(2)~(4)直到i、j重合;

(6)对i左边的数进行快速排序;

(7)对右边的数进行快速排序。

输入示例:

请输入需要排序的一组整数,数与数之间用空格隔开:6 10 11 8 4 1 9 7

输出示例:

排序结果:1 4 6 7 8 9 10 11 

程序模板:

def QuickSort(left,right):
    if            ①           :
        return
    mid=Numbers[left+(right-left)//2]
    i=left
    j=right
    while i<j:
        while Numbers[i]<mid:
            i+=1
        while Numbers[j]>mid:
            j-=1
        if i<=j:
                    ②           
        QuickSort(left,j-1)
        QuickSort(i+1,right) 

Numbers=list(map(int,input("请输入需要排序的一组整数,数与数之间用空格隔开:").
           ③           ))
QuickSort(0,           ④           )
print("排序结果:",end="")
for i in Numbers:
    print(i,end=" ")