调整数组顺序使得奇数位于偶数的前面

时间复杂度为o(n),空间复杂度为o(1)

思路:定义两个指针,分别位于数组的首尾两端,当出现left指向偶数,right指向奇数,就调换,否则left++,right--;

牛客网上的题目有点改变:

题目描述

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变

思路:

(1)判断数组是否为空的情况

(2)令i=0开始,寻找第一个偶数,j=i+1,找到第一个奇数

(3)将i到j-1的数字向后面移动,并且将找到的奇数放在i的位置上

 

posted on 2019-03-14 10:58  小季123  阅读(151)  评论(0编辑  收藏  举报

导航