最近在忙乙個專案,好久沒有寫日誌了,專案終於接近尾聲,可以適當放鬆一下,所以記一下在這個專案中發現的有趣事情:
陣列的 與 操作
一直以為兩個陣列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...