设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: taeckle
打印 上一主题 下一主题

[已经解决] 从1到100中随机抽10个不重复的数,再用这10个数组成一个数组

[复制链接]

Lv4.逐梦者

梦石
0
星屑
13562
在线时间
2753 小时
注册时间
2014-10-4
帖子
756

R考场第七期纪念奖

11
发表于 2020-8-14 17:18:56 | 只看该作者
不全赞同楼上
首先 1.81上 可以用 10.times.inject xxx 这种写法?? 怕是用 1.9x 及以上版本测试的吧
其次 过早优化是万物之源 在不知道这个方法用到何处 使用频率如何之前 有必要纠结优化吗 不如让可读性好一点
再次 确定是"最快"吗
因为一点点小改动就可以让他再快三倍
1. a[i],  a[j] = a[j], a[i]  改成使用临时变量 t 来交换
2. 把数组 [*1..100] 提取到方法的外面 免去重复创建
3. 上一步放到外面后 在方法内不要直接引用 加一个临时变量指向它  提高索引效率
为什么 a[i],  a[j] = a[j], a[i] 的写法更慢 但是ruby却提供这种写法呢?  因为写ruby初衷不就是写的舒服吗
真纠结效率 不如直接写一个 sample的c接口 效率更是能翻50倍

赞成楼上的是 sort 的写法确实有点过简过慢过于偷懒了
假如把"最快"改成“推荐的”“建议的”   那我一点点想法都没有 我完全赞成在最开始就选一个好算法

点评

多谢大神指点!  发表于 2020-9-19 06:18

评分

参与人数 1星屑 +20 收起 理由
RyanBern + 20 我很赞同

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-25 21:03

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表