更好的可读性和简单性与更高的复杂性和编程速度,该选择什么?
Better readability and simplicity versus higher complicity and speed in programming, what to chose?
我在大学做信息学的作业时,总是想出不同的方法来解决同样的问题。
一种方法是最快的(执行时间)但最长且更复杂。
另一个更容易实现,执行时间短,容易理解等。
作为一个小例子,我们必须在 C++ 中创建一个程序,它输出一行 N 个元素,其中每个元素具有相同的相邻元素,但中间的元素不同。
Ex.
6 Elements: *_*_*_
7 Elements: *_*_*_*
第一个解决方案最简单:
#include <iostream>
using namespace std;
int main(void){
int a;
cin >> a;
for (int i=1; i<=a; i++)
{
if (i%2 != 0)
{
cout << "*";
}
else
{
cout << " ";
}
}
return 0;
}
第二个实现起来有点困难但执行起来更快(更少的条件检查):
#include <iostream>
using namespace std;
int main(void){
int a;
cin >> a;
if (a%2 == 1)
{
for (int i=1; i<=a; i=i+2)
{
cout << "*";
cout << " ";
}
}
else
{
for (int i=1; i<a; i=i+2)
{
cout << "*";
cout << " ";
}
cout << " ";
}
return 0;
}
我的问题是我应该关注什么?干净的代码,易于 implement/deploy 和更好的可读性或最好的算法,更快的执行和强大的逻辑,或者尽可能地尝试混合所有这些 2,因为这两种解决问题的方法之间总是存在差异?
您应该 尝试编写可读、易于调试的代码以便于理解。
每当您遇到可以对其进行大量优化以获得更高性能的部分代码(通过在代码中实现汇编来修改代码的体系结构 or/and)时,您可以添加注释部分它的更好的性能选择。即使您选择了性能更好的替代方案,您总会有另一个可以支持您的方案,以便您理解它。
此外,当您通过这样做可以看到巨大的收益时,请坚持使用性能更好的替代方案,而不是每次都这样做。
请记住,这些改进最好仅在出现性能瓶颈或[=19]的系统中实施 =]电源效率 至关重要。
我在大学做信息学的作业时,总是想出不同的方法来解决同样的问题。 一种方法是最快的(执行时间)但最长且更复杂。 另一个更容易实现,执行时间短,容易理解等。
作为一个小例子,我们必须在 C++ 中创建一个程序,它输出一行 N 个元素,其中每个元素具有相同的相邻元素,但中间的元素不同。
Ex.
6 Elements: *_*_*_
7 Elements: *_*_*_*
第一个解决方案最简单:
#include <iostream>
using namespace std;
int main(void){
int a;
cin >> a;
for (int i=1; i<=a; i++)
{
if (i%2 != 0)
{
cout << "*";
}
else
{
cout << " ";
}
}
return 0;
}
第二个实现起来有点困难但执行起来更快(更少的条件检查):
#include <iostream>
using namespace std;
int main(void){
int a;
cin >> a;
if (a%2 == 1)
{
for (int i=1; i<=a; i=i+2)
{
cout << "*";
cout << " ";
}
}
else
{
for (int i=1; i<a; i=i+2)
{
cout << "*";
cout << " ";
}
cout << " ";
}
return 0;
}
我的问题是我应该关注什么?干净的代码,易于 implement/deploy 和更好的可读性或最好的算法,更快的执行和强大的逻辑,或者尽可能地尝试混合所有这些 2,因为这两种解决问题的方法之间总是存在差异?
您应该 尝试编写可读、易于调试的代码以便于理解。
每当您遇到可以对其进行大量优化以获得更高性能的部分代码(通过在代码中实现汇编来修改代码的体系结构 or/and)时,您可以添加注释部分它的更好的性能选择。即使您选择了性能更好的替代方案,您总会有另一个可以支持您的方案,以便您理解它。
此外,当您通过这样做可以看到巨大的收益时,请坚持使用性能更好的替代方案,而不是每次都这样做。
请记住,这些改进最好仅在出现性能瓶颈或[=19]的系统中实施 =]电源效率 至关重要。