我怎样才能从这个Java程序中得到一个解决方案来解决这个算法?
下面是我将编译和运行的代码,以查看它是否会提供解决此问题所需的一些缺少的变量 @dorakta如果您对代码块中操作分类的关注。以下可能是一个起点我怎样才能从这个Java程序中得到一个解决方案来解决这个算法?,java,arrays,algorithm,data-structures,Java,Arrays,Algorithm,Data Structures,下面是我将编译和运行的代码,以查看它是否会提供解决此问题所需的一些缺少的变量 @dorakta如果您对代码块中操作分类的关注。以下可能是一个起点 第1行:对于(int=0;i@dorakta,如果您关心代码块中操作的分类,请参阅)。以下可能是一个起点 第1行:for(int=0;iTo me,查找“绝对速度”意思是你运行它,看看它花了多长时间。你有什么想法?@KevinAnderson这些步骤确定每行代码的指令类型,要么是内存访问,要么是非内存访问,然后你需要确定每行代码将执行多少次。然后你将每
第1行:对于(int=0;i@dorakta,如果您关心代码块中操作的分类,请参阅)。以下可能是一个起点
第1行:for(int=0;iTo me,查找“绝对速度”意思是你运行它,看看它花了多长时间。你有什么想法?@KevinAnderson这些步骤确定每行代码的指令类型,要么是内存访问,要么是非内存访问,然后你需要确定每行代码将执行多少次。然后你将每行代码的访问次数相加,得到两次:100每一条内存访问指令都是纳秒,每一条非内存访问指令都是10纳秒你指的是Java代码还是编译字节码?@Kevin Anderson我指的是Javacode@KevinAnderson第1行将执行10000000000次,是内存访问,第2行永远不会执行,因此是非内存访问,第3行不会执行,因为第二行中有if语句。对我来说,找到“绝对速度”意思是你运行它,看看它花了多长时间。你有什么想法?@KevinAnderson这些步骤确定每行代码的指令类型,要么是内存访问,要么是非内存访问,然后你需要确定每行代码将执行多少次。然后你将每行代码的访问次数相加,得到两次:100每一条内存访问指令都是纳秒,每一条非内存访问指令都是10纳秒你指的是Java代码还是编译字节码?@Kevin Anderson我指的是Javacode@KevinAnderson第1行将执行10000000000次,是内存访问,第2行将永远不会执行,因此是非内存访问,第3行将不会执行,因为第二行中有if语句。非常感谢!因此总绝对速度将是610秒,因为T=Tna X Nna(10 X 1)+Ta X Na(100 X 6);非常感谢!所以总绝对速度是610秒,因为T=Tna X Nna(10 X 1)+Ta X Na(100 X 6);
for(int=0; i<1,000,000; i++)
{
if(data[i]< 0)
data[i]= data[i] * 2;
}
T=Tna X Nna + Ta X Na;
Tna= the time to execute a memory nonaccess instruction;
Nna= the number of memory nonaccess machine language instructions executed;
Ta= the time to execute a memory access instruction;
Na= the number of memory access machine language instructions executed;
1000000 times of
2 - memory access (1 read and 1 assign)
1 - compare
1 - incr (depends. It could be -> 1 read and 1 add)
1000000 times of
2 - memory access
1 - compare
Hence, 1000000 times.
2 - memory access (1 read and 1 assign)
1 multiply