javascript数组正态分布排序

本文介绍了一种使用JavaScript实现的正态分布排序方法。通过对数组进行升序排序后,将其分为左右两部分,通过比较左右数组之和来调整排序结果,最终实现数据的正态分布。文中还详细介绍了实现该算法的具体步骤。
摘要由CSDN通过智能技术生成

javascript数组正态分布排序,有一篇比较好的文章,原文链接如下:https://www.cnblogs.com/webLaoHe/p/5721520.html

原博的思想是,对一个数组,先从小到大排序,然后将下标为偶数的放在左侧,为奇数的时候放在右侧,在左右两边的数组增长过程中,当数组长度相等时,对左右两侧数组之和进行比较,因为是按照从小到大排列的,所以正常情况下,右侧会大于左侧,然后将右侧第一个跟左侧最后一个互换一下即可达到平衡的目的。

参照原博的写法,我在自己的项目中写了一个正态分布排序。

首先是升序排序,

 

这种写法可以根据数组的某个属性进行排序,所以在以下代码中,我们根据income属性对incomeData数组进行升序排序。

 

排序成功后,我们定义左右数组,在这个过程中我们用到了几个JS数组操作函数。

push()在数组的尾部添加一个或多个元素,与之对应的是pop(),弹出并返回最后一个元素。

unshift()是向数组的开头添加一个或多个元素,并返回新的长度的数组,与之对应的是shift(),删除并返回数组的第一个元素。

contact()连接多个数组,返回新的数组,不改变原来的数组。

熟悉了操作函数之后我们就可以理解上面的代码了。其中的compare()、sum()和wrap()函数我们做了另外的封装,代码如下。

 

这样我们就实现了正态分布排序,我是用在图表分析里的,看看图表效果还是很不错的。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值