拟人算法系列文章,以容易理解的方式描述算法,点赞收藏不迷路
奇偶数排序
def odd_even_sort(a: list[int]):
i = - 1
for j in range(len(a)):
if a[j] % 2 != 0:
i += 1
a[i], a[j] = a[j], a[i]
if __name__ == '__main__':
a = [5, 3, 1, 2, 4]
odd_even_sort(a)
print(a) # [5, 3, 1, 4, 2]
采用单向快速排序的思想,首先小弟1在开头前一位,然后小弟2从头开始往右移动,找到奇数的位置,然后让小弟1右移一位,交换两个小弟的值,小弟2过一遍即可让所有奇数都交换到前面去