#思路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-08-06 22:53:25 发布
本文介绍了两种有效的数组排序算法,一种是从头遍历并移动偶数到数组末尾,另一种是使用双指针技巧,一个从头部开始寻找偶数,另一个从尾部开始寻找奇数,两者相遇时进行交换,实现奇数在前偶数在后的排序。
1151

被折叠的 条评论
为什么被折叠?



