❶ 影响算法执行时间的因素主要有哪些
影响算法执行时间的因素包括:
1、算法本身选用的策略;
2、问题的规模;
3、书写程序的语言;
4、编译产生的机器代码质量;
5、机器执行指令的速度等。
为便于比较算法本身的优劣,应排除其它影响算法效率的因素。从算法中选取一种对于所研究的问题来说是基本操作的原操作,以该基本操作重复执行的次数作为算法的时间量。
(1)代码的编译方式会影响计算速度吗扩展阅读:
缩短算法时间的方法:
1、选择合理的存储结构。
数据的存储结构,分为顺序存储结构和链式存储结构。顺序存储结构的特点是借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系;链式存储结构则是借助指示元素存储地址的指针表示数据元素之间的逻辑关系。
2、使用直接初始化。
与直接初始化对应的是复制初始化。
3、减少除法运算的使用。
无论是整数还是浮点数运算,除法都是一件运算速度很慢的指令,在计算机中实现除法是比较复杂的。所以要减少除法运算的次数。
❷ c++编程方式编写的程序源代码,为什么编译后的代码量较大,运行的速度略低
C语言是国际上广泛流行的、很有发展前途的计算机高级语言。它适合作为系统描述语言,即可用来编写系统软件,也可用来编写应用软件。正如楼上的说是一个经典。
一般情况下,c++编程方式编写的程序源代码量小,但编译后的代码量较大,运行的速度略低,不过开发时的工作量和工作难度较小;而c编程方式编写的源代码量较大,但可执行的效率高.如果一些对速度要求高,尤其是对硬件操作较多的程序,大多数还是用c编程方式开发的(用C又比用汇编简单,易于实现).另外,学Win32 C程序设计还有助于更深入地了解Windows 的内幕和Win32 API。
C语言是比较接近机器语言,它又比汇编语言更容易理解和掌握,也是比较底层的语言,正由于这些它的运行速度很快,比java,C++,VB等有更高的效率.C尤其在通信方面的作用很大,比如你想进腾讯,华为等这样大的,在通讯信息方面的公司,学C无疑是最好的,当然不是说JAVA,C++不如C好,应该各有各的长处,总之学C语言是不会过时的。当然在其他方面的 应用也很强。
❸ “编译方式”和“解释方式”的区别是什么
程序员编写现在通常用高级语言编写的程序,比如c/c++和面向对象的可视化集合;这样的程序计算机不能直接执行,因为计算机只能执行二进制程序。
所以你必须通过一个源代码并把它转换成一个二进制的过程。计算机不直接接受和执行用高级语言编写的源程序,在输入计算机中的源程序,通过翻译成机器语言的“译者”来形成目标程序,计算机可以识别和执行。
翻译这个“翻译”通常有两种方法:编译和解释。
❹ Java 代码的运行效率是由Java虚拟机决定,还是由我们的PC速度决定
运行效率分两个部分,一个是编译的效率,一个是执行的效率。
编译的效率是由jvm和pc两部分影响的,编译后的class文件的执行速度就完全由pc决定了,这个和你的代码中是否有循环没有直接关系,执行所耗费的时间是按照计算机计算一个二进制基础运算的基础来衡量的。这里面还有class文件解释成机器码的时间,这个就是按语句的多少来算了,因为java是逐行逐句解释的。所以我们说class文件的运行时间也包含了class文件解释成机器码的时间。
不过java运行效率再快,也没有c代码快,这个不是说c代码精炼就运行快的原因。
java代码通过jvm编译成class文件,这时候还不能说是编译成机器码了,class码呢还是一种中间码,还需要被解释成机器码,这也是为什么java是跨平台的语言的原因。而c代码,只需要直接一次性编译成机器码就可以了。这也是为什么在某种平台下写的c代码不能再跨平台的原因。
希望我已经解释清楚了。
❺ 一个java文件中方法的多少影响速度么
毫无影响,java编译时就会确定方法的偏移量。java会自动装载,所以方法数量不是问题。
不过过多的方法和行数会对解读造成影响,造成可读性差。另外一些计算测试代码覆盖率的程序无法处理过多行的代码。
外界处于可读性的考虑,要求处理类的代码不可以超过2000行,一个方法不可以超过500行。