1.题目描述:
输入一个无序整数数组,调整数组中数字的顺序, 所有偶数位于数组的前半部分,使得所有奇数位于数组的后半部分。
要求时间复杂度为O(n)。
2.输入描述:
给定无序数组,长度不超过1000000
3.输出描述:
所有偶数位于数组的前半部分,所有奇数位于数组的后半部分。如果有多个答案可以输出任意一个正确答案。
4.实例:
输入:
2 4 5 7 8 1
输出:
2 4 8 7 5 1
5.解答:
# -*- coding:utf-8 -*-
import sys
def even_odd(array):
n=len(array)
even=[]
odd=[]
for i in range (0,n):
if array[i]%2==0:
even.append(array[i])
elif array[i]%2==1:
odd.append(array[i])
even_odd=even+odd
even_odd_num=' '.join(map(str,even_odd))
return even_odd_num
if __name__=="__main__":
line= sys.stdin.readline().strip()
array=list(map(int,line.split()))
print(even_odd(array))