最近在忙一个项目,好久没有写日志了,项目终于接近尾声,可以适当放松一下,所以记一下在这个项目中发现的有趣事情:

数组的 与 操作

  1. 一直以为两个数组A和B相与,谁前谁后都一样,不过这次在项目中突然想试一下,真是不试不知道一试吓一跳:
  • 与 操作,长数组和短数组相与要比短数组和长数组相与更节省时间;
  • 排序,对执行时间有影响,但不是特别明显。
  1. 代码:

#!/usr/bin/ruby r = Random.new
radix = 10000000 vals1 = 10000000.times.collect {|i| r.rand(radix)}
vals2 = 100000.times.collect {|i| r.rand(radix)} # 因为随机数,实际长度会小于10000000和100000
vals1_len = vals1.uniq.length
vals2_len = vals2.uniq.length vals1_sort = vals1.sort
vals2_sort = vals2.sort # 已排序未去重比较
stime = Time.now
vals1_sort & vals2_sort
etime = Time.now
puts ">>> sorted: #{vals1_len} & #{vals2_len} used #{etime - stime} s <<<" stime = Time.now
vals2_sort & vals1_sort
etime = Time.now
puts ">>> sorted: #{vals2_len} & #{vals1_len} used #{etime - stime} s <<<" # 未排序未去重比较
stime = Time.now
vals1 & vals2
etime = Time.now
puts ">>> unsort: #{vals1_len} & #{vals2_len} used #{etime - stime} s <<<" stime = Time.now
vals2 & vals1
etime = Time.now
puts ">>> unsort: #{vals2_len} & #{vals1_len} used #{etime - stime} s <<<"
# 3次执行结果:
$ ./and_test.rb
>>> sorted: 6321701 & 99471 used 1.255142772 s <<<
>>> sorted: 99471 & 6321701 used 7.265526653 s <<<
>>> unsort: 6321701 & 99471 used 1.552287352 s <<<
>>> unsort: 99471 & 6321701 used 8.896545005 s <<<
$ ./and_test.rb
>>> sorted: 6320949 & 99497 used 1.280619044 s <<<
>>> sorted: 99497 & 6320949 used 7.423779834 s <<<
>>> unsort: 6320949 & 99497 used 1.660184257 s <<<
>>> unsort: 99497 & 6320949 used 9.337629195 s <<<
$ ./and_test.rb
>>> sorted: 6319943 & 99492 used 1.260916227 s <<<
>>> sorted: 99492 & 6319943 used 7.734610427 s <<<
>>> unsort: 6319943 & 99492 used 1.707935118 s <<<
>>> unsort: 99492 & 6319943 used 9.105055703 s <<<

未完,待续...

Ruby中数组的&操作的更多相关文章

  1. ruby中数组的常用方法----例子

    #初始化 a = Array.new p a #=>[] a = Array.new(5) p a #=>[nil, nil, nil, nil, nil] a = Array.new(5 ...

  2. Ruby中数组的遍历

    转自:http://www.jianshu.com/p/8de9b60f9350 Ruby中有几个常用的遍历数组的方法,本人经常容易搞混.这里列出来总结一下. each: 从数组中取出一个元素,作为某 ...

  3. JSON相关知识,转载:删除JSON中数组删除操作

    一:JSON是什么 JSONg格式:对象是一个无序的“名称/值”对的集合. 对象以括号开始,括号结束. 名称冒号分隔值. "名称/值"之间用逗号分隔 例: var people = ...

  4. JS中数组的操作[转]

    1.数组的创建 var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限, ...

  5. JS中数组的操作

    1.数组的创建 var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限, ...

  6. ruby中数组的常用函数

    在程序中定义一个数组 在程序中定义一个数组,因为我们在下面说明. fruits = ["apple", "orange", "lemon"] ...

  7. 【转载】ruby 中数组函数示例(1)(转)

    函数名称 说明 示例 &      数组与,返回两数组的交集 [1,2] & [2,3] =>[2]   * 复制数组n次 [1,2]*2       => [1,2,1, ...

  8. ruby中数组认识

    a = 1...5这样赋值,a不是数组类型,1...5操作是一种枚举类型. a = ["1","2","3","4"], ...

  9. ruby中excel简单操作以及文件读取操作方法

    # -*-coding:utf-8 -*-#author:kanlijunrequire 'win32ole'require 'fileutils'class ResultAnalyse @@i=0 ...

随机推荐

  1. 【luogu P2880 [USACO07JAN]平衡的阵容Balanced Lineup】 题解

    题目链接:https://www.luogu.org/problemnew/show/P2880 是你逼我用ST表的啊qaq #include <cstdio> #include < ...

  2. 自定义AngularJS中的services服务

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...

  3. [vue warn]:typeError:_this.getMounted.forEach is not a function

    问题:报错 解决:forEach前面给数组,自己放的是Json,所以报错

  4. 【模板】string中substr函数的运用

    substr有两种用法: 假设:string s = "0123456789" ;  //下标从0开始 ① string a = s.substr(5)               ...

  5. BZOJ1432: [ZJOI2009]Function(找规律)

    Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1523  Solved: 1128[Submit][Status][Discuss] Descriptio ...

  6. BZOJ1086: [SCOI2005]王室联邦(贪心,分块?)

    Time Limit: 10 Sec  Memory Limit: 162 MBSec  Special JudgeSubmit: 2610  Solved: 1584[Submit][Status] ...

  7. HTTP缓存初探

    缓存的作用 用户访问一个web页面的频率远高于web页面更新的频率,因此多数时候用户从服务器获取的html.js.css以及图片等内容都是相同的,如果每次访问都从服务器获取这些静态内容即降低了页面加载 ...

  8. html5 手风琴菜单

    因为项目需要,现在需要做个手风琴菜单,于是自己就瞎整了一下,所用只是less.js  javascript  jquery效果如图: 具体代码如下: <!DOCTYPE html> < ...

  9. 【ppp-chap,pap,mp,mp-group】

    PPP链路端口验证(单){ PAP(明文): 主验证方: {local-user user_name:配置本地用户; password {simple||cipher}:配置验证密码; service ...

  10. React学习(3)——Router路由的使用和页面跳转

    React-Router的中文文档可以参照如下链接: http://react-guide.github.io/react-router-cn/docs/Introduction.html 文档中介绍 ...