
js版数据结构与算法—5.3奇偶排序
发布日期:2021-05-06 19:38:06
浏览次数:25
分类:精选文章
本文共 734 字,大约阅读时间需要 2 分钟。
奇偶排序是一种高效的排序算法,其核心思想是通过设置奇偶两个游标来实现对数组元素的重新排列。这种方法的关键在于将数组中的奇数和偶数分别存储,从而达到排序的目的。
要实现奇偶排序,可以按照以下步骤进行操作。首先,创建一个空数组用于存储排序后的结果。接着,初始化两个变量 odd
和 even
分别记录奇数和偶数的索引位置。然后,对原数组中的每个元素进行遍历,判断其是否为奇数或偶数。如果是奇数,则将其存入 odd
索引位置,并将 odd
索引位置递增2(跳过下一个偶数索引)。如果是偶数,则将其存入 even
索引位置,并将 even
索引位置递增2(跳过下一个奇数索引)。这样,遍历完成后,两个数组中的元素将按照奇偶顺序排列。
以下是具体的代码实现:
export default (arr) => { // 进行升序排序 arr.sort((a, b) => a - b) // 声明一个空数组用来存储奇偶排序后的数组 let r = [] // 记录奇数、偶数位下标 let odd = 1 let even = 0 // 对数组进行遍历 arr.forEach(item => { if (item % 2 === 1) { r[odd] = item odd += 2 } else { r[even] = item even += 2 } }) return r}
通过上述代码,可以将原始数组按照奇偶顺序重新排列。测试结果显示,这种方法能够有效地将数组元素按照升序排列。例如,对于输入 [4, 2, 5, 7, 1, 6]
,排序后的结果为 [2, 1, 4, 5, 6, 7]
。
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2025年03月21日 10时22分54秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
调试vs2019代码的流程
2019-03-06
脱壳与加壳-加壳-6-代码实现加密导入表
2019-03-06
Typora配置PicGo时,提示Failed to fetch
2019-03-06
ASP.NET CORE MVC 实现减号分隔(Kebab case)样式的 URL
2019-03-06
bcolz的新操作
2019-03-06
zmq的send
2019-03-06
阿里钉钉面试题
2019-03-06
C++中找资源或者函数的方法
2019-03-06
delete对象时会自动调用类的析构函数
2019-03-06
POD类型
2019-03-06
const与常量,傻傻分不清楚~
2019-03-06
Head First设计模式——迭代器模式
2019-03-06
MongoDB版本及存储引擎区别
2019-03-06
shell echo单行和多行文字定向写入到文件中
2019-03-06
HTML5新特性
2019-03-06
cmp命令
2019-03-06
Linux 磁盘管理(df fu fdisk mkfs mount)
2019-03-06
老Python总结的字典相关知识
2019-03-06
jQuery的事件绑定与触发 - 学习笔记
2019-03-06
Linux上TCP的几个内核参数调优
2019-03-06