#思路1:从头遍历找到偶数从数组中删除并移动到数组末尾
arr = [2,3,4,5,8,7,1]
for x in range(0,len(arr)):
if arr[x] % 2 ==0:
s = arr[x]
arr.remove(arr[x])
arr.append(s)
#print(arr)
#思路2 两个指针,第一个初始化指向数组的第一个数字,只向后移动;第二个初始化指向数组的最后一个数字,只向前移动。在
#两个指针相遇前,第一个始终位于第二个前,第一个指向奇数,第二个指向偶数,如果不是则交换
arr = [2,3,4,5,8,7,1]
def orderArray(arr):
if len(arr)==0:
return
head = 0
tail = len(arr)-1
while head<tail:
while head<tail and arr[head] % 2 != 0: #还可以&1来判断是否是偶数 while arr[head] &1 != 0:
head+=1
while head<tail and arr[tail] % 2 == 0:
tail-=1
if head<tail:
arr[head], arr[tail] = arr[tail], arr[head]
return arr
#print(orderArray(arr))
调整数组顺序使奇数位于偶数前--python
最新推荐文章于 2021-09-09 14:53:29 发布