`
wolf521hf
  • 浏览: 877 次
  • 性别: Icon_minigender_1
  • 来自: 芮城
最近访客 更多访客>>
社区版块
存档分类
最新评论

输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。要求时间复杂度为O(n)

阅读更多

package org.base.array;

public class ArrayUtil {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] source = {1,3,2,4,6,7,5};
        int[] result = new ArrayUtil().unevenBeforeOfEven(source);
        for(int i = 0;i<result.length;i++)
        {
        System.out.print(result[i]+" ");
        }
}
/**
* 输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,
* 所有偶数位于数组的后半部分。要求时间复杂度为O(n)
* @param arraySource
* @return
*/
public int[] unevenBeforeOfEven(int[] arraySource)
{
if(null == arraySource || 0 == arraySource.length)
{
return null;
}
int temp = 0;
int start = 0;
int end =  arraySource.length - 1;
while (start < end)
{
if(!isEven(arraySource[start]))
{
start++;
continue;
}
if(isEven(arraySource[end]))
{
end--;
continue;
}
temp = arraySource[start];
arraySource[start] = arraySource[end];
arraySource[end]= temp;
start++;
end--;
}
return arraySource;
}
/**
* 判断输入的整数是否为偶数,如果是偶数则返回true 否则返回false
* 函数isEven判断一个数字是不是偶数并没有用%运算符而是用&。理由是通常情况下位运算符比%要快一些
* @param numberSource
* @return
*/
public boolean isEven(int numberSource)
{
return (numberSource & 1) == 0;
}

}
分享到:
评论

相关推荐

    12313kaihuang#ArithmeticCode#调整数组顺序使奇数位于偶数前面1

    调整数组顺序使奇数位于偶数前面题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并

    EricESM#LeetCode-2#剑指 Offer 21. 调整数组顺序使奇数位于偶数前面1

    剑指 Offer 21. 调整数组顺序使奇数位于偶数前面输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组的前半部分,所有偶数在数组的后

    21:调整数组顺序使奇数位位于偶数位前面(剑指offer第2版Python)

    输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 2、书上的解法(相对位置改变) ...

    wind0926#JAVA2020#面试题21. 调整数组顺序使奇数位于偶数前面1

    面试题21. 调整数组顺序使奇数位于偶数前面题目链接面试题21. 调整数组顺序使奇数位于偶数前面题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,

    剑指Offer(Python多种思路实现):调整数组的顺序使奇数位于偶数前面

    题一:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。 解题思路一:使用两个指针,第一个指针初始化指向数组的第一个数字,从前向后移动...

    Veal98#CS-Wiki#剑指Offer21-调整数组顺序使奇数位于偶数前面1

    剑指 Offer 21. 调整数组顺序使奇数位于偶数前面剑指 Offer 21. 调整数组顺序使奇数位于偶数前面输入一个整数数组,实现一个函数来调整该数组中数字

    ArrayUtil.java

    输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分, 所有偶数位于数组的后半部分。要求时间复杂度为O(n)

    C语言程序设计-从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,并在main函数中输出;本.c

    C语言程序设计-从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,并在main函数中输出;本.cC语言程序设计-

    javascript入门笔记

    从弹框中录入一个数字表示考试成绩(score) 如果 成绩为 100 分 ,提示 :满分 如果 成绩 &gt;= 90 分 ,提示 :优 如果 成绩 &gt;= 80 分 ,提示 :良 如果 成绩 &gt;= 60 分 ,提示 :及格 否则 :提示 不及格 2、函数...

    python对输出的奇数偶数排序实例代码

    输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。 代码: # 输入:nums =[1,2,3,4] # 输出:[1,3,2,4] # 注:[3,1,2,4] 也是正确的答案之...

    关于C++信息学竞赛一维数组及其应用52个源文件及试题

    例5.2 将a数组中第一个元素移到数组末尾,其余数据依次往前平移一个位置。 例5.3 一维数组输入n个数,计算所有元素的和,求出最大的元素和最小的元素 1 利用for循环,计算输出1+2+…+100的和 2 输出1—100之间...

    在其他数都出现偶数次的数组中找到出现奇数次的数

    文章目录在其他数都出现偶数次的数组中找到出现奇数次的数整型数组中其他数都出现偶数次找到唯一出现奇数次的数题目算法思路相应代码整型数组中其他数都出现偶数次找到两个出现奇数次的数题目算法思路相应代码 ...

    上海电机学院C语言实训答案

    (5)编写一个程序实现如下功能:从键盘输入字符(最多为80个),遇到回车键输入结束,将输入的字符串按奇偶位置拆分,奇数位上的字符在前,偶数位上的字符在后,重新组成新的字符串输出,例如输入: ab12cd3456fg,...

    (一)剑指offer—Python版—数组篇

    剑指offer_Python版数组篇1.二维数组中的查找6.旋转数组中的最小值11.调整数组使奇数位于偶数前面19....请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 class Solution: #

    适合于初学者的java小程序之四

    打印出杨辉三角形(要求打印出10行如下图) 输入3个数a,b,c,按大小顺序输出。 输入数组,最大的与第一个元素...编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n

    C语言程序设计代码复习题大全.zip

    2.5 将一个数组中的值按逆序重新存放,例如:原来顺序为8,6,5,4,1.要求改为1,4,5,6,8.注:考虑偶数或奇数时怎么交换 2.6 输入十个数,去掉最大数和最小数后求平均值 2.7输入六个数到数列中,再输入一数值,...

    leetcode二维数组-programming_exercises:leetcode、nowcoder刷题之路

    调整数组顺序,使奇数位于偶数前面: 链表中倒数第k个节点: 反转链表: 合并两个排序的链表 树的子结构 二叉树的镜像 顺时针打印矩阵 包含main函数的栈 栈的压入、弹出序列 从上往下打印二叉树 二叉搜索树的后序遍历...

    《剑指Offer》题目及代码.zip

    14. 使数组中的奇数位于偶数前面 15. 找链表中倒数第K个节点 16. 输出反转后的链表 17. 合并两个有序链表 18. 判断二叉树A中是否包含子树B 19. 二叉树的镜像 20. 顺时针打印矩阵 21. 包含min函数的栈 22. ...

    世界500强面试题.pdf

    1.6.3. 输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数 位于数组的后半部分 ...........................................................130 1.6.4. 给定链表的头指针和一个...

    java经典编程题

    1.输出所有的“水仙花数”,水仙花数是指一个三位数,这个数的各位数字的立方和就是该数本身。 2.将一个正整数分解质因数,如:18=2*3*3; 3.输入两个正整数,求这两个数的最大公约数和最小公倍数; 4.输入一行字符...

Global site tag (gtag.js) - Google Analytics