博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
9、调整数组顺序使奇数位于偶数前面------------>剑指offer系列
阅读量:7290 次
发布时间:2019-06-30

本文共 1055 字,大约阅读时间需要 3 分钟。

题目描述

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

思路

首先寻找第一个奇数,取出,然后将第一个奇数之前的元素全部往后移一位,讲找到的第一个奇数放在0号位置。

依次在第一个奇数之后的元素中寻找奇数,并做移动操作。就可以保证原来的相对顺序。

function reOrderArray(array){    let j=0;    let m=0;    for(let i=0;i
0;ti--){ array[ti]=array[ti-1] } array[0]=temp; j=i; break; } } for(++j;j
m;tj--){ array[tj]=array[tj-1]; } array[++m]=temp; } } return array;}

如果不需要考虑相对位置则:

思路

设定两个指针

第一个指针start从数组第一个元素出发,向尾部前进

第二个指针end从数组的最后一个元素出发,向头部前进

start遍历到偶数,end遍历到奇数时,交换两个数的位置

当start>end时,完成交换

代码

function reOrderArray(array) {      if (Array.isArray(array)) { let start = 0; let end = array.length - 1; while (start < end) { while (array[start] % 2 === 1) { start++; } while (array[end] % 2 === 0) { end--; } if (start < end) { [array[start], array[end]] = [array[end], array[start]] } } } return array; }
 

 

 

转载于:https://www.cnblogs.com/QianDingwei/p/10927718.html

你可能感兴趣的文章
计算机程序和C++语言简介
查看>>
第26章 java进制操作
查看>>
查看哪些类里调用了这个方法
查看>>
javascript History对象
查看>>
Java 之多态
查看>>
【php】RBAC 管理权限
查看>>
个人文艺产品推荐--惜弗日历
查看>>
OO第一阶段总(休)结(养)分(生)析(息)
查看>>
规范化的软件项目演进管理--从 Github 使用说起
查看>>
ring3 dll hide
查看>>
Android 数据库打包随APK发布
查看>>
Javascript 添加自定义静态方法属性JS清除左右空格
查看>>
自学spring AOP
查看>>
STL容器之数据结构图解
查看>>
nginx请求频率限制模块ngx_http_limit_req_module
查看>>
cJSON学习笔记 续集
查看>>
JavaScript 简易画板
查看>>
【Todo】【转载】ES6的学习记录
查看>>
delete-node-in-a-linked-list
查看>>
PR曲线,ROC曲线,AUC指标等,Accuracy vs Precision
查看>>