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()
test.reOrderArray([1,2,3,4,5])
[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
你学会了吗,一个需要排序,一个不需要!
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
