gpt4 book ai didi

java - Java中整数数组中哪个操作交换或比较更昂贵

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:45:33 24 4
gpt4 key购买 nike

在 Java 中整数数组中交换操作和比较操作哪个更昂贵?或者他们都可以被认为是一样的?

上下文:对几乎已排序的数组进行排序(我不是在谈论 k 排序数组,其中每个元素从正确位置最多偏移 k 个)。即使我们使用插入排序,最后的比较次数也将与任何数组或最坏情况下的比较次数相同。不是吗?只是互换会更少。如果我错了请更正。

最佳答案

Swap 应该更昂贵,因为它包括:

  1. 从内存中读取数据到缓存
  2. 从缓存中读取数据到寄存器
  3. 将数据写回缓存

比较应该更便宜,因为它包括:

  1. 从内存中读取数据到缓存
  2. 从缓存中读取数据到寄存器
  3. 在两个寄存器上执行单个比较操作(这应该比将两个整数写入缓存快一点)

但现代处理器非常复杂且彼此不同,因此获得正确答案的最佳方法是对代码进行基准测试。

关于java - Java中整数数组中哪个操作交换或比较更昂贵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27887198/

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