双指针法2 调整数组顺序使奇数位于偶数前面(异向指针)

奇数放在偶数前

1.最基本的思路就是扫描数组,碰到偶数则把所有的数前移,把这个偶数放在最后一个,这样的复杂度是O(n2)
2.第二种思路是只要碰到偶数就将它与一个奇数交换,用两个指针分别指向开头和结尾,然后开始移动,如果前一个是偶数,后一个是奇数,则交换,如果前一个是偶数,后一个也是偶数,则移动后一个向前。若前一个是奇数,后一个也是奇数,则移动前一个向后。这种做法的复杂度就是O(n),因为遍历一次,每个数也只操作了一次。
3.然后可以写一个有扩展性的第二个代码,也就是将奇数和偶数判断这个流程封装成一个函数,这样可以在以后换成别的需求,比如说负数放在非负数前等要求换成函数放里面。而整体判断的框架就是两个指针移动。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值