输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
两种思路:1、重新申请两个数据,按照奇偶分别放入后相加
2、利用插入排序思想,一个指针指向头,另一个指向后面一个位置。前偶后奇则将奇数前的元素向后移,将奇数插入第一个指针所指位置
# -*- coding:utf-8 -*-
class Solution:
def reOrderArray(self, array):
# write code here
l = len(array)
if(l==0 or l==1):
return array
i = 0
while(i < l):
while(i<l and array[i]%2==1):
i += 1
j = i + 1
while(j<l and array[j]%2==0):
j = j + 1
if(j<l):
tmp = array[j]
while(j>=i):
array[j]=array[j-1]
j -= 1
array[i]=tmp
else:
break
i += 1
return array
arr=[1,2,3,4,5,6,7]
print(len(arr))
ss = Solution()
ss.reOrderArray(arr)
print(arr)