python写的快排,求助dalao
查看原帖
python写的快排,求助dalao
1044496
ZHAOHANGFEI1208楼主2025/1/18 12:51
  • 用python写的快排,但是只有40分,最后三个都TLE了,有可以优化的空间吗TAT

length = int(input())
list1 = list(map(int, input().split()))

def quick_sort(left, right, list1):
    if left >= right:
        return
    base = list1[left] # 基准(位的)值是固定的
    i = left
    j = right # 引用模拟指针
    while i < j:
        while i < j and list1[j] >= base:
            j -= 1
        while i < j and list1[i] <= base:
            i += 1
        if i < j:
            list1[i], list1[j] = list1[j], list1[i] # 找到各自的置换位置后 进行交换
    list1[left], list1[i] = list1[i], list1[left] # ==基准位left== 的值归位
    quick_sort(left, i - 1, list1) # 深度优先
    quick_sort(j + 1, right, list1)


quick_sort(0, length - 1, list1)
print(*list1)
 
2025/1/18 12:51
加载中...