Ruby中陣列的 操作

2022-05-13 06:12:55 字數 1822 閱讀 3604

最近在忙乙個專案,好久沒有寫日誌了,專案終於接近尾聲,可以適當放鬆一下,所以記一下在這個專案中發現的有趣事情:

陣列的 與 操作

一直以為兩個陣列a和b相與,誰前誰後都一樣,不過這次在專案中突然想試一下,真是不試不知道一試嚇一跳:

**:

#!/usr/bin/ruby

r = random.new

radix = 10000000

vals1 = 10000000.times.collect

vals2 = 100000.times.collect

# 因為隨機數,實際長度會小於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: # & # used # s <<<"

stime = time.now

vals2_sort & vals1_sort

etime = time.now

puts ">>> sorted: # & # used # s <<<"

# 未排序未去重比較

stime = time.now

vals1 & vals2

etime = time.now

puts ">>> unsort: # & # used # s <<<"

stime = time.now

vals2 & vals1

etime = time.now

puts ">>> unsort: # & # used # 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 陣列操作

陣列的建立 arr array.new num 建立num個元素的陣列,所有陣列元素為nil arr array.new num,elem 建立num個元素的陣列,所有陣列元素為elem arr array m.n 建立m.n元素為m到n的陣列 包括n m.n不包括n arr array elem1...

ruby陣列操作

2009 08 04陣列的建立 arr array.new num 建立num個元素的陣列,所有陣列元素為nil arr array.new num,elem 建立num個元素的陣列,所有陣列元素為elem arr array m.n 建立m.n元素為m到n的陣列 包括n m.n不包括n arr a...

ruby 陣列操作

陣列的建立 arr array.new num 建立num個元素的陣列,所有陣列元素為nil arr array.new num,elem 建立num個元素的陣列,所有陣列元素為elem arr array m.n 建立m.n元素為m到n的陣列 包括n m.n不包括n arr array elem1...