python解决数组奇数和偶数位置排序问题
python 定义数组题⽬描述
输⼊⼀个整数数组,实现⼀个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
题⽬解析:这个题⽬很简单,只需要判断数组中的元素是奇数还是偶数,然后取出来,放进⼀个新的数组中就可以了。
下⾯介绍⼏种⽅法:
第⼀种使⽤两个数组,⼀个奇数数组,⼀个偶数数组,最后返回两个加在⼀起。
#第⼀种⽅法
class Solution:
def reOrderArray(self, array):
#分别定义两个奇数数组和偶数数组
odd_array =[]
even_array =[]
#循环判断原数组中的元素是奇数还是偶数,然后分别添加到对应的数组中国
for i in array:
if i %2!=0:
odd_array.append(i)
else:
even_array.append(i)
return odd_array + even_array#注意这⾥的顺序不要搞错了,奇数在前,偶数在后
test = Solution()
[1, 3, 5, 2, 4]
当然也可以⽤⼀个数组来解决问题
array =list(map(int,input().split(' ')))
res =[]
for i in array:
if i %2==0:
res.append(i)
for i in array:
if i %2==1:
res.append(i)
print(" ".join(map(str,res)))
1 3 4 5
4 1 3 5
题⽬描述
输⼊⼀个整数数组,实现⼀个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,且保证奇数和偶数是按照⼤⼩顺序排列的
第⼆种⽅法,使⽤冒泡排序的⽅式
array =list(map(int,input().split(' ')))#输⼊整数数组
odd_array =[]#奇数数组
even_array =[]#偶数数组
#奇偶分开
for i in array:
if i %2==1:
odd_array.append(i)
else:
even_array.append(i)
#奇数数组排序
for i in range(len(odd_array)-1):
for j in range(len(odd_array)-1-i):
if odd_array[j]> odd_array[j+1]:
odd_array[j], odd_array[j+1]= odd_array[j+1], odd_array[j]
#偶数数组排序
for i in range(len(even_array)-1):
for j in range(len(even_array)-i-1):
if even_array[j]> even_array[j+1]:
even_array[j], even_array[j+1]= even_array[j+1], even_array[j] #打印排序过后的数组
print(" ".join(map(str,odd_array+even_array)))
1 4 5 77 67 2
1 5 67 77
2 4
你学会了吗,⼀个需要排序,⼀个不需要!