仅用O(1)的空间,将整数数组按奇偶数分成2部分,数组左边是奇数、右边是偶数。(要求:给出完整代码,尽量高效,简洁)
思路:
1. 从左往右找偶数,遇到奇数就继续往右(即遇到奇数执行操作:low++),找到偶数就停止,结果是找到第一个偶数
2. 从右往左找奇数,遇到偶数就继续往左(即遇到偶数执行操作: high–),直到找到第一个奇数

public class Main {public static void main(String[] args) {int[] sz= {2,3,5,22,45,23,80,97,67,20,11,25,71,90};int begin = 0;int end = sz.length -1;while(begin<end){while(sz[begin] % 2 !=0 && begin <end){begin++;}while(sz[end] % 2 ==0 && begin <end){end--;}int temp = sz[begin];sz[begin] = sz[end];sz[end] = temp;}for(int i=0;i<sz.length;i++){System.out.print(sz[i]+" ");}}
}

Reference:
http://www.tilaile.com/question/16852

算法-数组拆分为奇偶两部分相关推荐

  1. 【算法】几个数组拆分题的算法(动态规划,矩阵递归和同余问题)

    鸽了几个月,终于更了哈哈哈(确实本人懒癌晚期,往往就不更了) 这个学期虽然算是最鸽的一个学期,不过也有些东西,总共一学期做过的三次数组拆分问题感觉上已经够了一篇很不错的文章,其实就有的时候就懒得更了 ...

  2. python【力扣LeetCode算法题库】4- 寻找两个有序数组的中位数

    寻找两个有序数组的中位数 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2. 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n)). 你可以假设 n ...

  3. Algorithm:C+语言实现之数组相关算法(和为定值的两个数、和为定值的m个数、荷兰国旗、长度为2n的洗牌算法、任意长度数组的洗牌算法)

    Algorithm:C+语言实现之数组相关算法(和为定值的两个数.和为定值的m个数.荷兰国旗.长度为2n的洗牌算法.任意长度数组的洗牌算法) 目录 数组 1.寻找和为定值的两个数 2.和为定值的m个数 ...

  4. [算法]力扣刷题-初级算法 - 数组(三)(数组篇完结) [两数之和] [有效的数独] [旋转图像]

    初级算法 - 数组篇完结: 初级算法 - 数组(一): https://blog.csdn.net/weixin_43854928/article/details/121315702 初级算法 - 数 ...

  5. 有苦有乐的算法 --- 一个数组中,有两种数出现了奇数次,其余数都出现了偶数次,找到这两种数

    题目 一个数组中,有两种数出现了奇数次,其余数都出现了偶数次,找到这两组数 例: [2,4,3,2,5,4] ⇒ [3,5] [1,4,6,3,7,8,3,2,1,2,6,6,7,8] ⇒ [6,4] ...

  6. 算法------数组---------存在重复元素

    给定一个整数数组,判断是否存在重复元素.如果任何值在数组中出现至少两次,函数返回 true.如果数组中每个元素都不相同,则返回 false.示例 1:输入: [1,2,3,1] 输出: true 示例 ...

  7. 算法------数组---------删除重复元素

    /*** 删除排序数组中的重复项给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度.不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额 ...

  8. 【算法】快速选择算法 ( 数组中找第 K 大元素 )

    算法 系列博客 [算法]刷题范围建议 和 代码规范 [算法]复杂度理论 ( 时间复杂度 ) [字符串]最长回文子串 ( 蛮力算法 ) [字符串]最长回文子串 ( 中心线枚举算法 ) [字符串]最长回文 ...

  9. 【算法】哈希表 ( 两数之和 )

    算法 系列博客 [算法]刷题范围建议 和 代码规范 [算法]复杂度理论 ( 时间复杂度 ) [字符串]最长回文子串 ( 蛮力算法 ) [字符串]最长回文子串 ( 中心线枚举算法 ) [字符串]最长回文 ...

  10. JavaScript数据结构与算法——数组详解(下)

    1.二维与多维数组 JavaScript只支持一维数组,但是通过在数组里保存数组元素的方式,可以轻松创建多维数组. 1.1 创建二维数组 二维数组类似一种由行和列构成的数组表格,在JavaScript ...

最新文章

  1. 用Gson实现json与对象、list集合之间的相互转化
  2. 端口复用突破防火墙(图)
  3. dense rank改为mysql_mysql上排名sql的写法,类似oracle的rank和dense
  4. 前端学习(1269):axios的拦截器
  5. 第二层$.get()、$.post() 方法使用(三)
  6. C# 生成全球唯一标识符
  7. mysql 编码种类_MySQL 编码
  8. c语言大学生信息管理系统实验报告,c语言学生信息管理系统实训报告
  9. 时频分析之短时傅里叶变换(STFT)
  10. 【Qt】警告Missing reference in range-for with non trivial type
  11. android 视频通话框架,Android基于腾讯云实时音视频仿微信视频通话最小化悬浮
  12. 360插件化方案RePlugin初体验
  13. python范例_最佳Python代码范例
  14. win10更新后闪屏处理方法
  15. 如何设置HTML背景特效,HTML5之按钮背景不同动画特效设计
  16. 基于AOP的优惠券发送异常哨兵监控
  17. JavaSE —— 000基础版
  18. uniapp苹果无法上架_uni-app 打包ios上架app store流程
  19. PERCENT(SQL)
  20. Opencv实现停车位识别

热门文章

  1. 软件测试中的人工智能现状:未来会怎样?
  2. JavaFX桌面应用开发-Scene(场景)
  3. python查看ascii_Python获取ASCII字符
  4. wince驱动加载失败
  5. 亚马逊卖家运营必备八大工具
  6. sgu 309 Real Fun
  7. WordPress主题制作全过程(八):制作index.php
  8. c语言写入数据到txt,c语言如何将printf产生的数据写到txt文件中
  9. 谷歌拼音 输入法设置
  10. 技术岗网上测评-智力题