gpt4 book ai didi

sorting - 获取int的第一个数字

转载 作者:IT王子 更新时间:2023-10-29 00:40:06 25 4
gpt4 key购买 nike

如何按每个整数的第一个数字对整数 slice 进行排序?

我正在尝试编写自己的自定义排序:

type ByFirstDigit []int

func (s ByFirstDigit) Len() int {
return len(s)
}

func (s ByFirstDigit) Swap(i, j int) {
s[i], s[j] = s[j], s[i]
}

func (s ByFirstDigit) Less(i, j int) bool {
return s[i][0] < s[j][0]
}

但是我得到这个错误:

s[j][0] (type int does not support indexing)

最佳答案

@RayfenWindspear 的答案最易于使用和阅读,但对性能影响的说法是正确的。如果性能比可维护性更重要,您可以使用迭代除法来获得最重要的 10 位数字来做同样的事情:

var i int
for i = n; i >= 10; i = i / 10 {}
// i == most significant digit

请注意,您必须在循环外声明 i 才能在循环找到最高有效数字后使用它。我还会使用您自己的数据集对两者进行基准测试,以了解在您的特定情况下真正的性能影响是什么。

Full playground example, courtesy of Rayfen .

关于sorting - 获取int的第一个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45640144/

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