如何重新考虑新的pivot以便它重新运行if语句?

2024-10-01 02:40:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个快速排序算法。当我运行这个代码时,它是一个不断变小的轴心循环。但是,透视数将小于数组中的项。我需要它来重新查看我的top if语句,以检查pivot数是否更小

new_numbers = [23, 76, -18, -83, 1, 34, 19, 24, 1312, 56, -123, 52, -5, -22, 44, 16]
pivot = len(new_numbers)-1
while 1 == 1:
    pivot = pivot
    if any(new_numbers[pivot] < item for item in new_numbers[:pivot]):
        increment = 0
        for i in range(pivot):
            if new_numbers[i] < new_numbers[pivot]:
                new_numbers[increment], new_numbers[i] = new_numbers[i], new_numbers[increment]
                increment=increment + 1
        new_numbers[increment],new_numbers[pivot] = new_numbers[pivot],new_numbers[increment]
    elif any(new_numbers[pivot] >= item for item in new_numbers[:pivot]):
        pivot = increment - 1
        if any(new_numbers[pivot] >= item for item in new_numbers[:pivot]):
            increment -= 1
            pivot = increment - 1
print(new_numbers)

Tags: 代码in算法newforif排序any