问题描述
ruby 中想对数组中间的一段进行排序,我知道可以这样:
a[1..2] = a[1..2].sort!
但这样会有一次拷贝,出于效率原因希望不产生任何拷贝,直接在原数组上排序。
问题解答
回答1:排序只是拷贝的数组的结构,数组内容不会被拷贝,所以对性能的影响是微乎其微的。
你多大的数据量会让这段代码成为性能瓶颈?
回答2:用sort排序方法会重新生成一个新数组,你可以利用数组下标取出元素进行比较,交换位置就可以了

问题描述
ruby 中想对数组中间的一段进行排序,我知道可以这样:
a[1..2] = a[1..2].sort!
但这样会有一次拷贝,出于效率原因希望不产生任何拷贝,直接在原数组上排序。
问题解答
回答1:排序只是拷贝的数组的结构,数组内容不会被拷贝,所以对性能的影响是微乎其微的。
你多大的数据量会让这段代码成为性能瓶颈?
回答2:用sort排序方法会重新生成一个新数组,你可以利用数组下标取出元素进行比较,交换位置就可以了
相关文章:1. node.js - nodejs superagent读取网页内容,怎么控制请求的频率2. node.js - nodejs 如何传递一个类的实例?3. ruby - redmine 新建项目出错4. Twitter为什么要从ruby转向Scala?5. ruby - Could not read gem6. Ruby的元编程(Metaprogramming)在其他语言中是否有相似的技术?7. Ruby中为何要同时有to_s,to_str,inspect这三个函数?nil.inspect为何是“nil”8. node.js - npm install express 或者安装cnpm都是这个样子,是公司网络的原因么9. rvm - 怎么下不了ruby的源码包?10. 字符串函数 - Ruby 中如何生成一个随机字符串?
网公网安备:皖ICP备2020019022号-8 Copyright ¢ 2020-2025 Powered by V1.8 All Rights Reserved 技术支持:乐呵呵网
声明:本站所有资源以学习为主