冒泡法
class Solution:
def reOrderArray(self , array ):
# write code here
j1 = 0//记录放奇数的位置
for j2 in range(len(array)):
if array[j2] & 1 == 1://从前往后找到奇数
x = array[j2] //记录奇数的值
for c in range(j2, j1 , -1)://放奇数的位置开始往后移一位,到第二个奇数位置停止。
array[c] = array[c - 1]
array[j1] = x //把找到的奇数填入记录好的位置
j1+=1 //记录下次放奇数的位置
return array
傻冒法://每次把最后一个偶数冒到最后的位置,且前面只存在奇偶之间的位置变动,奇奇和偶偶间位置不会变
class Solution:
def reOrderArray(self , array ):
# write code here
if not array:
return []
for passnum in range(len(array)-1, 0, -1):
for i in range(passnum):
if array[i] % 2 == 0 and array[i+1] % 2 != 0:
array[i], array[i+1] = array[i+1], array[i]
return array
辅助数组法
class Solution:
def reOrderArray(self , array ):
# write code here
array1=[]
array2=[]
for i in array:
if i&1:
array1.append(i)
else:
array2.append(i)
array1 = array1+array2
return array1