使用指定快速排序原理补全Python排序程序

dz797109 程序题 共 个子题

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

需使用以下特定快速排序法实现:

  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=" ")

本题为编程题,提交代码并运行通过测试点后判分。

正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
提交记录
共 条 仅展示自由练习提交
正在加载提交记录…
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧