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;
}
}
分享到:
相关推荐
调整数组顺序使奇数位于偶数前面题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并
剑指 Offer 21. 调整数组顺序使奇数位于偶数前面输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组的前半部分,所有偶数在数组的后
标题中的“调整数组顺序使得奇数在偶数前面1”是指一种编程问题,目标是将一个整数数组重新排列,使得所有的奇数都出现在数组的前面,所有的偶数都出现在数组的后面。这个问题通常出现在算法练习中,例如LeetCode等...
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 2、书上的解法(相对位置改变) ...
面试题21. 调整数组顺序使奇数位于偶数前面题目链接面试题21. 调整数组顺序使奇数位于偶数前面题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,
剑指 Offer 21. 调整数组顺序使奇数位于偶数前面剑指 Offer 21. 调整数组顺序使奇数位于偶数前面输入一个整数数组,实现一个函数来调整该数组中数字
在这个特殊的例子中,我们要探讨的是如何通过C++实现一个顺序表,使得奇数元素位于左边,偶数元素位于右边。这涉及到数组的遍历、条件判断以及元素的重新排列。 首先,我们需要理解顺序表的基本操作,包括创建、...
Dim randomArray(1 To 10) As Integer '定义一个包含10个元素的整数数组 Dim rng As New Random '创建随机数生成器对象 For i = 1 To 10 randomArray(i) = rng.Next(-100, 100) '生成-100到100之间的随机整数并...
- 参数说明:`char a[]` 表示输入的字符串,`int x[]` 是一个整型数组,用于存储偶数和奇数字符的数量。 - 功能说明:遍历字符串中的每个字符,根据其ASCII值判断是偶数还是奇数,并更新`x`数组中的计数值。 - ...
- 原地操作:如果允许改变原线性表的顺序,可以在遍历过程中将奇数和偶数分别移到表的前半部分和后半部分,然后分割成两部分。 4. **C++编程相关**: - 文件名列表中的`.cpp`文件是C++源代码文件,用于编写实现...
输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分, 所有偶数位于数组的后半部分。要求时间复杂度为O(n)
本题是其中的第21题,要求用Python实现一个函数,将输入的整数数组调整顺序,使得所有的奇数位于数组的前半部分,而所有的偶数位于后半部分。这里提供了两种不同的解决方案。 第一种解题思路利用了两个指针,分别...
假设我们有一个整数数组,我们需要设计一个函数来重新排列这个数组,使得所有的奇数都出现在数组的前半部分,而所有的偶数则排在后半部分。在此过程中,奇数与奇数、偶数与偶数之间的相对位置不能改变。这是一个对...
在这个问题中,目标是将一个整数数组中的所有奇数移到所有偶数的前面,同时保持原数组中奇数和偶数的相对顺序。这可以应用于各种场景,例如数据预处理或特定条件下的数据排序。 在给定的描述和Java代码中,提供了一...
这是一个C语言初学者在学习的早期阶段经常会遇到的问题,本程序展示了如何通过编写一个函数来将数组中的数字分成两个部分:一个部分包含所有的偶数,另一部分包含所有的奇数,并且按照原始数组的顺序重新组合它们。...
从弹框中录入一个数字表示考试成绩(score) 如果 成绩为 100 分 ,提示 :满分 如果 成绩 >= 90 分 ,提示 :优 如果 成绩 >= 80 分 ,提示 :良 如果 成绩 >= 60 分 ,提示 :及格 否则 :提示 不及格 2、函数...
例5.2 将a数组中第一个元素移到数组末尾,其余数据依次往前平移一个位置。 例5.3 一维数组输入n个数,计算所有元素的和,求出最大的元素和最小的元素 1 利用for循环,计算输出1+2+…+100的和 2 输出1—100之间...
判断一个整数是否为奇数的常见方法是检查它的余数。如果除以2的余数不为0,则该数为奇数。例如,`number % 2 != 0` 这个条件就可以用来筛选出奇数。 在查找过程中,可以采用顺序查找(Sequential Search)算法,即...
这个任务要求我们对一个非负整数数组A进行特殊排序,使得数组中的奇数出现在奇数索引上,偶数出现在偶数索引上,同时保持原有的奇偶数量比例。这涉及到数组操作和排序算法的知识。 首先,我们要理解问题的核心:...
- 描述:已知数组`int x[10] = {13, 24, 35, 46, 57, 68, 79, 88, 93}`,请将用户输入的一个数字按照从小到大的顺序插在对应的位置后输出整个数组。 - 关键知识点: - 输入输出操作:使用`scanf`接收用户输入,...