调整数组顺序使奇数位于偶数前面:遍历交换

特殊输入:
1) 只有一个数字
2) 全奇数或者全偶数
3) 空指针
4) 正常输入

考虑到扩展性,C++里面使用了函数指针来实现,但是对于java,可以采用接口实现 - 思路比较简单

public class _Q14 {public void ReorderOddEven(int array[]){if(array == null) return;if(array.length == 1) return;int indexL = 0;int indexR = array.length-1;while(indexL < indexR){while((array[indexL] & 0x1) == 1 && indexL < indexR) ++indexL;while((array[indexR] & 0x1) == 0 && indexL < indexR) --indexR;int temp = array[indexL];array[indexL] = array[indexR];array[indexR] = temp;}}}

测试代码:

public class _Q14Test extends TestCase {_Q14 reOrder = new _Q14();public void test(){int array1[] = {};int array2[] = null;int array3[] = {2};int array4[] = {2, 1, 3, 4};int array5[] = {1, 5, 3, 7};int array6[] = {2, 4, 6, 8};System.out.println("---------------------------------array1");CommonUtils.PrintArray(array1);reOrder.ReorderOddEven(array1);CommonUtils.PrintArray(array1);System.out.println("---------------------------------array2");CommonUtils.PrintArray(array2);reOrder.ReorderOddEven(array2);CommonUtils.PrintArray(array2);System.out.println("---------------------------------array3");CommonUtils.PrintArray(array3);reOrder.ReorderOddEven(array3);CommonUtils.PrintArray(array3);System.out.println("---------------------------------array4");CommonUtils.PrintArray(array4);reOrder.ReorderOddEven(array4);CommonUtils.PrintArray(array4);System.out.println("---------------------------------array5");CommonUtils.PrintArray(array5);reOrder.ReorderOddEven(array5);CommonUtils.PrintArray(array5);System.out.println("---------------------------------array6");CommonUtils.PrintArray(array6);reOrder.ReorderOddEven(array6);CommonUtils.PrintArray(array6);}}

【剑指offer-Java版】14调整数组顺序使奇数位于偶数前面相关推荐

  1. 剑指offer面试题[14]-调整数组顺序使奇数位于偶数前面

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

  2. 剑指Offer - 面试题21. 调整数组顺序使奇数位于偶数前面(双指针,原地算法)

    1. 题目 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分. 示例: 输入:nums = [1,2,3,4] 输出:[1,3,2,4 ...

  3. 剑指offer面试题21. 调整数组顺序使奇数位于偶数前面(双指针)

    题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分. 思路 详见链接 代码 class Solution:def exchan ...

  4. 【剑指offer】21、调整数组顺序使奇数在偶数前面

    题目 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分. 思路一 从前往后扫描数组,遇到一个偶数就把它放到数组末尾,并且把之后 ...

  5. 14 调整数组顺序使奇数位于偶数前面

    输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分 C++: 1 void reOrderArray(vector<int ...

  6. 面试 6:调整数组顺序使奇数位于偶数前面

    今天给大家带来的是 <剑指 Offer>习题:调整数组顺序使奇数位于偶数前面,纯 Java 实现希望大家多加思考. 面试题:输入一个整型数组,实现一个函数来调整该数组中的数字的顺序,使得所 ...

  7. 《LeetCode力扣练习》剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 Java

    <LeetCode力扣练习>剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 Java 一.资源 题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组 ...

  8. 剑指offer——面试题14:调整数组顺序使奇数位于偶数前面

    剑指offer--面试题14:调整数组顺序使奇数位于偶数前面 Solution1: 顺序交换,比较好的算法!!! class Solution { public:void reOrderArray(v ...

  9. 【剑指offer - C++/Java】13、调整数组顺序使奇数位于偶数前面

    在线题目链接:调整数组顺序使奇数位于偶数前面 文章目录 1 题目描述 2 题目分析 2.1 方法1 2.11 Java代码 2.12 C++代码 2.2 方法2 2.21 Java代码 2.22 C+ ...

最新文章

  1. MySQL 8.0版本无法使用 node、Navicat等三方工具连接的问题
  2. 打包文档_苏教版小学数学16年级全十二册教案Word文档打包下载
  3. Asp.NetCore轻松学-部署到 Linux 进行托管
  4. IOS UI 第三篇:基本UI
  5. 太真实了!有个程序员男友原来是这样的!
  6. sun.misc.BASE64Decoder导入异常及处理思路
  7. 【个人笔记】OpenCV4 C++ 快速入门 17课
  8. 【汇编程序】实现判断输入的年份是否为闰年
  9. 银行软件测试测试用例,银行测试用例设计经验总结,应该怎样去设计测试用例?...
  10. Android熟悉使用PackageManager,ActivityManager,MemoryInfo,引入布局文件Include的使用,values的管理
  11. alsa buffer原理_ALSA driver--HW Buffer
  12. php面向对象常见的专业术语
  13. layui多选下拉框,多选
  14. PHPExcel 锁定表头 设置样式,背景颜色,居中,宽,单元格合并
  15. 市场上各种深度摄像头测试之华捷艾米A100
  16. 手机摄影技巧总结——永远拍出美美的照片
  17. mongodb集群 java_Mongodb集群操作的JAVA代码详解
  18. Python3网络爬虫--爬取有声小说(附源码)
  19. 税控服务器抵扣增值税文件,税控盘费和服务费全额抵税如何做账?
  20. LaTeX数学符号基础

热门文章

  1. 软件测试人员需要掌握的linux命令(一)
  2. Eclipse安装SVN最新版插件
  3. MDT2008部署之三LTI部署之二
  4. BZOJ 3534 重建
  5. centos6.5搭建lnmp环境
  6. 解读ASP.NET 5 MVC6系列(7):依赖注入
  7. Start Developing iOS Apps Today系列(十二)
  8. C++ 输入输出流 文本文件 二进制文件读写
  9. Android网络连接判断与处理
  10. 概率论与数理统计常用英文词汇对照