输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。要求时间复杂度为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;
}

}
剑指offer:调整数组顺序使奇数位于偶数前面 目录 题目 分析 解法一 解法二 解法三 运行效率比较 扩展 总结 题目 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。 分析 事实上,这个题比较简单,很多种方式都可以实现,但是其时间复杂度或空间复杂度不尽相同。 解法一 书中作者提到一种初... 阅读详情

相关推荐

跨模态行人重识别实战:Python复现SYSU-MM01官方评估协议

本文详细介绍了如何用Python复现SYSU-MM01数据集的官方评估协议,以解决原Matlab代码在Python生态中不便使用的问题。文章深入解析了数据集的`indoor`与`all`两种评估模式,并提供了完整的Python代码实现,包括特征加载、相似度计算、Rank-k与mAP指标计算等核心步骤,确保评估结果与官方Matlab版本完全一致,助力跨模态行人重识别研究。

weixin_29081163的博客 99

输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分

题目:输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。要求时间复杂度为O(n)。  分析:如果不考虑时间复杂度,最简单的思路应该是从头扫描这个数组,每碰到一个偶数时,拿出这个数字,并把位于这个数字后面的所有数字往前挪动一位。挪完之后在数组的末尾有一个空位,这时把该偶数放入这个空位。由于碰到一个偶数,需要移动O(n)个数字,因此总的时间复杂度是O

码农也有梦 1万+

SAP FICO 资产会计AA后台配置 (上)

输入折旧表“CZ11”如有外币计价的资产,则需指定外币计价的资产折旧范围,以及规则。因为在设置资产类型时,需指定一个对应的 资产编号范围、资产账户确定类型(便于分配自动会计科目)、屏幕格式规则(便于设置资产字段必填与否)。因为在设置资产类型时,需指定一个对应的 资产编号范围、资产账户确定类型(便于分配自动会计科目)、屏幕格式规则(便于设置资产字段必填与否)。新增资产类型:Z101 固定资产-房屋及建筑物新增资产类型:Z301 固定资产-房屋及建筑物。

ghgxm520的博客 1762

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

#include<stdio.h> #include<stdlib.h> void Sort(int* arr,int n) { int i = 0, j = n-1; int tmp; while (1) { while (arr[i] % 2) { i++; } while (arr[j] % 2 == 0) { j--; } if...

weixin_44456232的博客 373

ARM一致性总线CMN600AE

是基于Mesh拓扑结构,对外支持AMBA CHI/ACE-LITE等接口,内部改用路由结构转发数据,并提供硬件一致性和系统缓存,还支持多芯片互联。CMN600在T16FFC上可以做到2Ghz,另外AE版本增加了车规芯片的安全功能,总线内部采用EDC检查,接口采用的奇校验。CMN-600AE具有以下特点:该网络符合功能安全标准,例如ISO 26262(汽车电子领域的功能安全标准)或IEC 61508(工业自动化领域的功能安全标准)等。

weixin_50518899的博客 3504

百度无人车ApolloAuto使用入门

1.安装原版ubuntu 14.04 http://www.ubuntu.org.cn/download/alternative-downloads 2.安装对应ubuntu 14.04的indigo版ROS http://wiki.ros.org/indigo/Installation/Ubuntu 3.安装Apollo Kernel https://github.co

ss910的博客 3万+

调整数组中数字的顺序,使得所有奇数位于数组的前半部分

输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。要求时间复杂度为O(n),不要求保留数组元素的相对位置。 解析:可以维护两个指针:第一个指针初始化为数组的第一个数字,它只向后移动;第二个指针初始化为数组的最后一个数字,它只向前移动。在两个指针相遇之前,第一个指针总是位于第二个指针的前面。如果第一个指针指向的数字是偶数而第二个指针指向的数字是奇数

大灰狼的专栏 1228

CTFshow-pwn入门-前置基础pwn32-pwn34

CTFshow-pwn入门-前置基础pwn32-pwn34

你们de4月天的博客 1133

[C语言]调整一个整型数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分。

调整后:arr数组中1,3,5,7,9在数组的前部分,arr数组中2,4,6,8,10在数组的后部分。例:初始整型数组arr[]={1,2,3,4,5,6,7,8,9,10};

qq_43559301的博客 555

详解AUTOSAR:DaVinci Configurator导入ARXML配置(拓展篇—2)

DaVinci Configurator导入ARXML配置。

不脱发的程序猿 3334

HanLP的分词

HanLP的分词

sikh_0529的博客 1万+

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

/* copyright@nciaebupt 转载请注明出处 题目:输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所 有偶数位于数组的后半部分。要求时间复杂度为O(n)。 分析:如果不考虑时间复杂度,最简单的思路应该是从头扫描这个数组,每碰到一个偶数时, 拿出这个数字,并把位于这个数字后面的所有数字往前挪动一位。挪完之后在数组的末尾有 一个空位,这时把该偶数放入这个空位。

nciaebupt 4558

[VCS]VCS checkpoint简介以及其在SoC验证加速中的作用

VCS checkpoint是Synopsys VCS提供的快照/恢复机制,可显著加速SoC验证。其核心是在仿真关键节点(如完成初始化后)保存系统状态,后续测试可直接从该点恢复,避免重复执行冗长的初始化阶段(如boot、DDR训练等)。该技术特别适用于多测试用例共享同一初始状态的场景,通过分离初始化与功能验证流程,可提升回归效率3-5倍。需注意处理DPI-C状态同步、版本管理及存储优化等问题,结合UVM和自动化脚本可实现更高效的验证流程。典型应用可节省数百万cycle的重复仿真时间。

元直的博客 778

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

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。 想法:看到这要求就是把数组前后划分,是不是跟快排有相似之处,只不过快排依据是数值大小,而这个是奇偶。   static void DoSomethingToArray(int[] numbers, int length)         {            

穷B光头 250

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

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

题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 注意:本题需要保持奇数与奇数之间,偶数和偶数之间的相对位置不改变,所以就不能使用快排的partition,因为快排是不稳定的,这里提供几种方法。 法1:类似于冒泡排序,如果前面是偶数,后面是奇数,则

guojz049的博客 319

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【剑指offer】面试题21:调整数组顺序使奇数位于偶数前面

题目1:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。 如果不考虑时间复杂度,最简单的思路应该是从头扫描这个数组,每碰到一个偶数时,拿出这个数字,并把位于这个数字后面的所有的数字往前面挪动一位。挪完之后在数组的末尾有一个空位,这时把该偶数放入这个空位。由于每碰到一个偶数就需要移动O(n)个数字,因此总的时间复杂度是O()。...

Java学习 5998

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

【leetcode刷题】41.调整数组顺序使奇数位于偶数前面——Java版

早期刷题第一天

公号:一条coding 1万+

算法习题54:输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分

调整数组顺序使奇数位于偶数前面。 题目:输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分, 所有偶数位于数组的后半部分。要求时间复杂度为O(n)。 ---------------------------------------------------------------- 这道题难度不是很大,同样利用两个指针分别从头尾开始遍历到中间相遇即可。 其实这题就

ylf13的专栏 2309

简单算法题-输入一个整数数组,实现一个函数, 来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分, 所有偶数位于数组的后半部分

//1.调整数组使奇数全部都位于偶数前面。 //题目: //输入一个整数数组,实现一个函数, //来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分, ////所有偶数位于数组的后半部分。 //#include <stdio.h> //#include <stdlib.h> //void swap(int* left ,int len){ // int* rig...

weixin_45636889的博客 703

【算法入门03】调整数组顺序使奇数位于偶数前面

核心考点:数组操作,排序思想的扩展使用 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。例如将数组{1, 2, 3, 4, 5, 6}调整为{1, 3, 5, 2, 4, 6}。 解析一:(若相对位置可变) 若是题目当中没有要求数组调整后奇数和奇数,偶数和偶数的相对位置不变,那么我们可以使用两个变量(left和right)来遍历数组,left从左往右寻找偶数,right从右往左寻找奇数,之

2021dragon的博客 1848

调整数组使奇数全部都位于偶数前面,杨氏矩阵 (C语言)

1.调整数组使奇数全部都位于偶数前面。 题目:输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。 (扩展版,有图示)https://blog.csdn.net/qq_43606352/article/details/90452351 #include<stdio.h> #include<st...

July 917

leetcode——调整数组顺序使奇数位于偶数前面

题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 完整代码 #include<bits/stdc++.h> using namespace std; void reOrderArray(vector<int> &array){ ...

yyf_blog 707

算法-调整数组顺序使奇数位于偶数前面

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

wender的专栏 570

剑指offer_15:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。

1、剑指Offer面试题21:调整数组顺序使奇数位于偶数前面 题目一:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。 思路:使用双指针,left和right;left从前往后移动,直到遇到偶数; right指针向前移动,直到遇到一个奇数;交换两个指针所指向的元素。 package 数组类型; import java...

王文强的博客 468
lpf521
博客等级 码龄18年 0粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值