一句话理解
算法是解决问题的具体办法,程序是把办法写成计算机能执行的指令。
为什么要学
信奥考的不是“会打字”,而是“会想办法,再把办法写对”。
讲解
算法先回答:步骤是什么、按什么顺序、什么时候停。
比如“从 1 加到 n”:从 1 开始,每次加 1,一直加到 n。这就是算法。写成 C++ 之后才是程序。
好算法通常:正确、够快、好写、好查错。初学先保证正确。
例子
int sum = 0;
for (int i = 1; i <= n; i++) {
sum += i;
}
这是“从 1 加到 n”的算法对应的代码。公式 n*(n+1)/2 是另一种算法:结果一样,步骤更少。
常见错误
- 把算法和程序当成同一个词。算法是办法,程序是写法。
- 只追求“能跑”,不关心步骤对不对。