首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
调整数组顺序使奇数位于偶数前面
[编程题]调整数组顺序使奇数位于偶数前面
热度指数:887019
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 64M,其他语言128M
算法知识视频讲解
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
马上挑战
算法知识视频讲解
提交运行
算法知识视频讲解
添加笔记
求解答(10)
邀请回答
收藏(1804)
分享
提交结果有问题?
2674个回答
100篇题解
开通博客
牛客题解官
发表于 2020-05-29 15:10:40
精华题解
描述 此题解是针对初学者的全面讲述,用三种方法来解决。知识点:数组难度:一星 题解 方法一:使用辅助数组 函数的类型为void func_name(array&),想让我们不开辟额外数组来解决,使用in-place就地算法。但是如果空间要求不高的话,我们还是可以开挂的。也就是开辟个额外数组
展开全文
Ariser.cn
发表于 2019-08-21 16:37:38
思路:参考快速排序 i++往前走碰到偶数停下来,j = i+1 若 a[j]为偶数,j++前进,直到碰到奇数 a[j]对应的奇数插到a[i]位置,j经过的j-i个偶数依次后移 如果j==len-1时还没碰到奇数,证明i和j之间都为偶数了,完成整个移动 class Solution { p
展开全文
PualrDwade
发表于 2019-09-12 17:54:37
一个很容易理解的解法,时间复杂度为o^2我们可以借鉴冒泡排序的特点,让偶数不断向右边移动,而冒泡的过程本身也可以保证相对顺序的不变,最后所有的偶数都移动到了右边,最坏情况下外层循环需要进行array.size()次。 class Solution { public: void reOrder
展开全文
back201811142225988
发表于 2019-09-27 23:35:57
遍历数组,从0到n,如果是奇数,i++,如果是偶数,将这个偶数插入到数组末尾,然后删除这个偶数,同时n--,确保不会出现全是偶数的情况下死循环或者遍历到了新插入的偶数上。 # -*- coding:utf-8 -*- class Solution: def reOrderArray(self
展开全文
aidisen
发表于 2019-08-26 19:41:32
move elements public class Solution { public void reOrderArray(int [] array) { if(array==null || array.length ==0){ return ;
展开全文
jalr4ever
发表于 2019-08-25 21:44:03
剑指 - 调整数组奇数位于偶数前 题目 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 思路 使用两个队列,一个存奇数,一个存偶数,然后依次将数赋值回原数组 总结 位运算的实
展开全文
道阻且长z
发表于 2019-09-25 01:35:31
思路: 开辟新数组保存法:创建两个数组,一个用来存奇数,一个用来存偶数,最后合并。 不开辟新数组: 1.用两个下标i,j进行遍历; 2.当i走到偶数时停下,并让j从i的后一个元素开始遍历;(若i走到队尾则循环结束) 3.若j所指的是偶数则继续前进,j遇到奇数则停下(如果j都没遇到奇数则在队尾停
展开全文
Johnnyhuang
发表于 2020-04-15 00:55:42
这道题很明显是利用排序算法解决实际问题的题由于要保证奇数和奇数,偶数和偶数之间的相对位置不变。即排序算法要具有稳定性: 冒泡,插入,并归,计数,基数,桶这里分别修改冒泡排序(20ms),插入排序(25ms),并归排序(14ms)来解决这个问题 1. 冒泡法 O(n^2) Java 20ms 这里考
展开全文
BillyHao
发表于 2020-01-06 09:36:40
思路,把原数组分成一个奇数组一个偶数组,再按顺序复制回去,这样,只需要遍历两次原数组即可。(一次读出,一次写入)空间效率下降,因为额外有两个数组用于记录,但时间效率较好。 public void reOrderArray(int [] array) { //所以此时,这两个array长度都=
展开全文
青空2020
发表于 2020-04-03 16:06:46
用两个list分别存入奇数和偶数,再将奇数和偶数按顺序放入数组即可。 public void reOrderArray(int [] array) { ArrayList<Integer> l1 = new ArrayList<>(); Arr
展开全文
糊秃秃
发表于 2019-08-23 13:14:47
插入排序过程中,序列分为已遍历部分和未遍历部分,已遍历序列有序,未遍历序列有序性未知,为了做到这一点,在每遍历每一个数时O(n),依次在已遍历序列中从后往前比较O(n),将当前数放入适当位置,直至未遍历部分为空O(n ^ 2)。相当于摸牌将牌组分为,手中的牌和牌组中的牌,手中的牌有序,牌组中的牌有序
展开全文
问题信息
数组
来自:
编程题练习卷
难度:
2674条回答
1804收藏
302833浏览
热门推荐
通过挑战的用户
人来疯的伊登等...
2023-03-14 20:46:02
浪漫不死
2023-03-03 16:19:37
Elastic...
2023-02-27 10:19:34
日服男枪战绩可查
2023-02-24 17:50:25
牛客59897...
2023-02-13 11:22:24
相关试题
左旋转字符串
字符串
评论
(1878)
来自
编程题练习卷
整数中1出现的次数(从1到n整数中...
基础数学
评论
(1769)
来自
编程题练习卷
编程题 ,按照要求创建Java 应...
Java
评论
(1)
说出3个获取用户需求的方法并简述其...
用户研究
评论
(1)
调整数组顺序使奇数位于偶数前面
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题
import java.util.*; public class Solution { public void reOrderArray(int [] array) { } }
class Solution { public: void reOrderArray(vector
&array) { } };
# -*- coding:utf-8 -*- class Solution: def reOrderArray(self, array): # write code here
class Solution { public int[] reOrderArray(int[] array) { // write code here } }
function reOrderArray(array) { // write code here } module.exports = { reOrderArray : reOrderArray };
# # # @param array int整型一维数组 # @return int整型一维数组 # class Solution: def reOrderArray(self , array ): # write code here
package main /** * * @param array int整型一维数组 * @return int整型一维数组 */ func reOrderArray( array []int ) []int { // write code here }
/** * * @param array int整型一维数组 * @param arrayLen int array数组长度 * @return int整型一维数组 * @return int* returnSize 返回数组行数 */ int* reOrderArray(int* array, int arrayLen, int* returnSize ) { // write code here }