gpt4 book ai didi

Julia:给定一个迭代器 `itr` ,是否有有效的数据结构和算法来获取 `n` 的前 `itr` 值的索引?

转载 作者:行者123 更新时间:2023-12-02 16:30:43 24 4
gpt4 key购买 nike

考虑 dist = rand(4_000_000),我希望找到前 n 值的索引。对于前 1 很容易

argmax(距离)

但是如果有一个函数可以找到前n呢?

最佳答案

如果您只需要索引而不需要对列表进行实际排序,请使用 partialsortperm:

julia> partialsortperm(dist,1:5)
5-element view(::Array{Int64,1}, 1:5) with eltype Int64:
1015972
672133
1519815
2724755
428060

请注意,如果您连续多次执行此操作,则可以避免使用 partialsortperm! 重新分配索引向量。

如果您确实需要使用 partialsort 的元素,最快的方法是使用 partialsort! 就地排序:

julia> partialsort!(dist,1:5)
5-element view(::Array{Float64,1}, 1:5) with eltype Float64:
3.7341092440357215e-8
8.483718505480908e-8
2.1386679072143977e-7
2.2127291532392235e-7
4.3546665384752714e-7

关于Julia:给定一个迭代器 `itr` ,是否有有效的数据结构和算法来获取 `n` 的前 `itr` 值的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63533193/

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