python - 如何在 python 中使用两个列表(使用列表理解)进行快速排序?
问题描述
我需要对两个列表进行快速排序并将它们合并到一个列表中并输出结果。在节目中,lista = numbers = (1,2,3,4,5)
和listb = numberaa = (6,7,8,9,10)
结果是[1, 6, 2, 7, 3, 8, 4, 9, 5]
到目前为止,这是我的代码:
def quicksort(lista, listb):
if len(lista) <= 1:
return lista
elif len(listb) <= 1:
return listb
else:
pivota = lista[0]
pivotb = listb[0]
lesser = quicksort([x for x in lista[1:] if x < pivota], [y for y in listb[1:] if y < pivotb])
greater = quicksort([x for x in lista[1:] if x >= pivota], [y for y in listb[1:] if y >= pivotb])
result = lesser + [pivota] + [pivotb] + greater
return result
numbers = (1,2,3,4,5)
numberaa = (6,7,8,9,10)
print(quicksort(numbers, numberaa))
我认为我的程序有两个问题:
如果 的长度
lista
小于或等于 的长度listb
,则经过排序后,将不会对lista
中的其余元素进行排序。listb
输出结果不是按升序排列的。
我应该怎么做才能解决问题?
解决方案
推荐阅读
- php - 我收到类似 mail.myserver.in 的 TLS/SSL 失败的通知:意外的 TCP 输入断开连接
- django - Django Ajax:响应呈现在另一个页面不同的页面
- android - 在 exoplayer 中播放动态 url
- python - AttributeError:模块“torchtext.datasets”没有属性“text_classification”
- java - 如何知道用户没有给我们的应用程序提供互联网访问权限?
- php - 将两个小时添加到从 MySQL 数据库中获取的数据
- node.js - 如何在 Nativescript 8 和 Angular 中生成组件
- python - django / ajax 表单提交收到 405 错误但有效吗?
- php - 将静态数据从一个 php 发送到另一个
- dart - 如何在自动保存时向 Dart 代码添加分号?