位置: 编程技术 - 正文

javascript 数组的正态分布排序的问题(javascript中数组)

编辑:rootadmin

推荐整理分享javascript 数组的正态分布排序的问题(javascript中数组),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:javascript数组的正确方法,javascript数组的本质,javascript数组的方法,javascript数组的定义,JavaScript 数组的最大值最小值平均值求和,javascript数组的正确方法,javascript数组的方法,JavaScript 数组的最大值最小值平均值求和,内容如对您有帮助,希望把文章链接给更多的朋友!

最近几天顶着上海°的凉爽天气找工作,心里是开心的不要不要的,每次面试都是要坐那里出半天汗才能回过神来,感觉到了这个世界对我深深的爱意,言归正传,面试过程中碰到了几次笔试,其中有这么一道题,由于实际工作中没遇到过,所以留意下来,题目是这样:

  有一个数组为:var arr = [1,2,1,3,3,2,4,6,3],通过处理将其变为正态分布的形式: [1,2,3,3,6,4,3,2,1]。

  关于正态分布我就简单解释一下吧,其实看到处理后的数组大致也能明白,就是两头小,中间大,体现到坐标轴里的正态曲线呈钟型,两头低,中间高,左右对称因其曲线呈钟形,因此人们又经常称之为钟型曲线。

  这道是面试的最后一题,做到这里的时候时间比较紧张了加上天气炎热口渴饥饿前台妹子太好看(别废话了就是因为算法弱。。。),稍作思考写了如下代码:

  由于是笔试,自己在脑海里边yy了一会程序后,觉得没啥大问题就交卷了,后来的面试官看了试卷,在面试过程中并没有提到这道题,所以觉得这种方法没什么问题了就没在面试过程中再问,不过来回来的路上,我突然想到了一个这样的情况:

javascript 数组的正态分布排序的问题(javascript中数组)

  是的,这样一来这个数组的左右部分并不是对称的,以9为中心,左侧为1+3+5+7=,右侧为2+4+6+8=,明显的是左轻右重,不是一个均匀的正态分布了,随着数组的增大,带来的问题会越来越严重。

  亚麻带。。。。我是一朵含苞欲放的花骨朵不要这样对我。。。

  看来前边的代码是不能用的,只能重新思考解决方法,其实问题的核心在于保证数组的左右两侧是相等或者大致相等的,不管是奇数个数的数组还是偶数个数的,数组可以分为两部分(奇数个数的抛去最大值后也可以看做是一个偶数数组,即便有多个相同最大值也无所谓,从小到大排序后去除最后一个即可),还是按照上边的方法,下标为偶数的时候放到左侧,为奇数的时候放到右侧,在左右两边的数组增长过程中,当数组长度相等的时候,对左右两侧数组之和进行比较,因为是按照从小到大排列的,所以正常情况下,右侧会大于左侧,然后将右侧第一个跟左侧最后一个互换一下即可达到平衡的目的,代码如下:

  这样一来整个正态分布就均匀多了,多做几组测试看看效果:

  看起来还不错,小站里还有篇文章 点击查看,用c++完成的,不过看到文章最后的结果,并不是一个均匀的正态分布,倒是跟我第一个程序差不多,

本人不怎么会c++,也没运行多组结果看看,有兴趣的同学可以尝试下作为对比。

  本文所有的程序我仅在chrome做过测试,如果其他浏览器有问题的话,希望留言告知,其实这东西也没什么难度,权当一个记录吧,有需要的时候可以用用。

JavaScript的字符串方法汇总 1.stringObject.charAt()作用:返回字符串的下标varstr="这是一串字符串";console.log(str.charAt(0))//这2.stringObject.charCodeAt()作用:方法可返回指定位置的字符的Unicode

Javascript OOP之面向对象 面向对象程序设计(Object-orientedprogramming,OOP)是一种程序设计范型,同时也是一种程序开发的方法。对象指的是类的实例。它将对象作为程序的基本单

深入浅出讲解ES6的解构 什么是解构?解构与构造数据截然相反。例如,它不是构造一个新的对象或数组,而是逐个拆分现有的对象或数组,来提取你所需要的数据。ES6使用了

标签: javascript中数组

本文链接地址:https://www.jiuchutong.com/biancheng/373566.html 转载请保留说明!

上一篇:详细谈谈javascript的对象(详细谈谈哲学的基本问题)

下一篇:JavaScript的字符串方法汇总(javascript的字符串操作)

  • 消费型增值税的含义
  • 房屋租金可以开发票吗
  • 先收到发票还未付款怎么做账
  • 甲方应项目具备开工条件
  • 每月10万不要交税从什么时候开始
  • 信用评估费用收费标准
  • 销售退货时发票已认证怎么办
  • 申请增值税专用发票需要什么资料
  • 转账支票背书转让样本
  • 国家金库是什么税费
  • 所得税预提多了怎么处理
  • 银行代收费业务会计分录
  • 预提怎么写会计分录
  • 购买商品成本要支付哪些成本
  • 小规模纳税人增值税超过30万怎么纳税
  • 跨地区经营汇总纳税企业所得税
  • 房地产公司简易计税增值税
  • 商品进价销售要上税吗
  • windows安全警报关不掉
  • win10如何设置右键
  • 取得进项税发票分录
  • 房租押金未全额缴纳
  • 增值税的滞纳金怎么做账
  • 货没到申请退款玩付邮费吗
  • mac电脑遇到问题而重新启动
  • 企业所得税涉税风险通知书
  • php零基础入门教程
  • php新手入门
  • 从奎雷英山口看到的 Leum na Luirginn湖和Cleat湖,英国斯凯岛 (© Sebastian Wasek/Sime/eStock Photo)
  • 减免活动怎么做
  • 固定资产售卖的账务处理
  • 合同负债和预收负债的区别
  • 保洁劳务派遣合同
  • web系统的安全现状
  • 材料报废及处置方案
  • 交税务局的工会经费现金流
  • 资产负债表与利润表之间的关系
  • 建筑施工企业增值税老项目过度期成本票
  • 物流破损拒收的理由
  • 刚开始考会计证有用吗
  • 财务咨询公司能出尽调报告吗
  • 织梦官方
  • 织梦适合做什么网站
  • 代收往来款的会计分录
  • 研发费用凭证是什么样
  • 预收账款可以用吗
  • 公司购车需要什么材料
  • 小规模减免附加税会计分录怎么做
  • 预算收入的退付范围
  • 会计中的明细科目是什么
  • 促销费会计分录怎么写
  • 公司基本账户提额怎么算
  • 实际成本法下采购材料的会计分录
  • 进口设备 退税
  • 简易计税方法缴纳城建税和教育税
  • 交通运输业安全经费提取的会计处理
  • 异地工程可以在公司所在地缴纳税款吗
  • 城市综合配套
  • 影院会计有前景吗
  • 企业股东的出资方式
  • vmware左侧的虚拟机名称不见了
  • 安装双系统后无法进入原来的系统
  • Linux Mount NTFS分区造成的权限问题如何解决?
  • win7找回删除的文件
  • win8 控制面板
  • windows8快速关机
  • [置顶] 此外,车牌号:458143(懂得都懂[吃瓜])
  • node.js 10实战
  • Android: Receiving Data from the Send Intent,将自己的app注册系统分享
  • unity游戏之羊刀与Pendragon复盘:DotA做对了什么
  • nodejs连接mysql的历程
  • unity调色插件
  • 3d游戏引擎诞生
  • 如何使用wordpress
  • linux装python环境
  • 基于python的研究
  • Python3使用requests登录人人影视网站的方法
  • fragment生命周期图
  • 带酒回国需要申报吗
  • 安徽省工商总局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设