""" 輸入一個整數數組,實現一個函數來調整該數組中的數字的順序, 使得全部奇數位於數組的前半部分,全部的偶數位於數組的後半部分。 """classSolution:# 一個相似於快排的方法, 只是簡單的知足了奇數在前,偶數在後, 奇數的順序發生了改變defreOrderArray(self, array):iflen(array)<1:returneliflen(array)==1:return array
front =0
rear =len(array)-1while front < rear:while front < rear and array[front]&0x1==1:
front +=1while front < rear and array[rear]&0x1==0:
rear -=1
array[front], array[rear]= array[rear], array[front]return array
defreOrderArray2(self, array):
left =[x for x in array if x &1]
right =[x for x in array ifnot x &1]return left + right
defreOrderArray3(self, array):iflen(array)<1:returniflen(array)==1:return array
arrayOdd =[]
arrayEven =[]for num in array:if num &0x1:
arrayOdd.append(num)else:
arrayEven.append(num)return arrayOdd + arrayEven
if __name__ =='__main__':
solution = Solution()
data1 =[1,2,3,4,5]
data2 =[2,3,4,5,6]print(solution.reOrderArray(data1))print(solution.reOrderArray(data2))