java 它具有更大的空间和时间复杂度:逻辑语句vs更新语句[已关闭]

ltqd579y  于 2023-03-28  发布在  Java
关注(0)|答案(1)|浏览(128)

已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题?**添加详细信息并通过editing this post阐明问题。

2天前关闭。
Improve this question
请参阅给定的2个代码,将矩阵的元素更新为0:

for(int i = 0; i < rows; i++){
   for(int j = 0; j < cols; j++){
      if(matrix[i][j] != 0) matrix[i][j] = 0;
   }
}

第二个:

for(int i = 0; i < rows; i++){
   for(int j = 0; j < cols; j++){
      matrix[i][j] = 0;
   }
}

你能告诉我哪一个更好用吗?
根据我的新手知识,第二个应该是一个更好的代码,因为我们说编译器无论如何都要将其更新为0.(rowscols times)但根据leet代码,第一个代码更好,我们要求编译器检查它是否为非零,并在它为非零时更新为0.(rowscols times logical statement + updating every non-zero element to zero).
是的,到现在为止,你可能已经知道我还没有研究过空间和时间复杂度,你能简单地说明一下吗?

mf98qq94

mf98qq941#

它们具有相同的时间和空间复杂度。
如果你问哪一个更快,这个问题一般无法回答:它取决于平台、编译器、硬件等的细节。基本上,它取决于条件语句是否比赋值语句慢,以及编译器实际生成的是什么代码。

相关问题