gpt4 book ai didi

ruby :排序!和独特的!哪个先跑?

转载 作者:数据小太阳 更新时间:2023-10-29 06:37:32 26 4
gpt4 key购买 nike

我需要在数组上同时运行 sort!uniq!。哪个先跑比较好?或者有没有办法将它们组合成一个命令?

最佳答案

我用 uniq uniq 的不同组合做了一点基准测试!排序排序!没有显着差异:

                user     system      total        real
sort!.uniq!103.547000 0.172000 103.719000 (104.093750)
uniq!.sort!100.437000 0.093000 100.530000 (100.859375)
uniq.sort 100.516000 0.157000 100.673000 (101.031250)
sort.uniq 103.563000 0.062000 103.625000 (103.843750)

你不能使用的是:

array = [1]
array.uniq!.sort!

独一无二!将导致 nil 并排序!将抛出异常。

我使用的基准:

require 'benchmark'
require 'date'

TEST_LOOPS = 10_000
ARRAY = []
1000.times{
ARRAY << Date.new(1900 + rand(100), rand(11)+1, rand(27) + 1 )
}
Benchmark.bm(10) {|b|

b.report('sort!.uniq!') {
TEST_LOOPS.times {
a = ARRAY.dup
a.sort!
a.uniq!
} #Testloops
} #b.report

b.report('uniq!.sort!') {
TEST_LOOPS.times {
a = ARRAY.dup
# uniq!.sort! not possible. uniq! may get nil
a.uniq!
a.sort!
} #Testloops
} #b.report

b.report('uniq.sort') {
TEST_LOOPS.times {
a = ARRAY.dup.uniq.sort
} #Testloops
} #b.report

b.report('sort.uniq') {
TEST_LOOPS.times {
a = ARRAY.dup.sort.uniq
} #Testloops
} #b.report

} #Benchmark

关于 ruby :排序!和独特的!哪个先跑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6712046/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com