Java for You 数据结构 剑指Offer之十四-调整数组顺序使奇数位于偶数前面

剑指Offer之十四-调整数组顺序使奇数位于偶数前面

题目来自剑指Offer之十四。

基本解法

  • 保证奇数和奇数,偶数和偶数之间的相对位置不变
  • 遍历每个元素,一旦发现偶数就取出来,让它之后的元素向前移动,把取出来的元素补到最后的空位上
  • 类似插入排序,具体实现是外循环找奇数,内循环将该数之前的偶数移位

高效解法

  • 相对位置可以改变时,更为高效的解法
  • 维护两个指针,一首一尾
  • 首指针向后遍历,检测到偶数时暂停,尾指针向前遍历,检测到奇数时暂停
  • 交换首尾两个数
  • 继续这样的判断,直到首尾指针相遇。

判断一个数是否为偶数

本文由 java4u.cn 发布,可自由转载、引用,但需署名作者且注明文章出处(作者:白色蜗牛,出处:java4u.cn)。如转载至微信公众号,请在文末添加作者公众号二维码。 https://java4u.cn/algorithms/3319.html

作者: 蜗牛

八大排序算法Java实现

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

联系我们

公众号:蜗牛互联网

在线咨询: QQ交谈

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部