算法
- 两种算法的比拟
- 算法的独特
1.写一个 求1加到100的程序 大多数人马上会写出以下的代码
写法1
// 容器 int sum = 0; for (int i = 1; i <= 100 ; i++) { // 1+2+3+4...加到100 sum = i + sum; } // 输入后果 5050 System.out.println(sum);
问题是这样写是不是真的很好呢,或者来说最高效呢?
这是高斯小时候就想出过一种求等差数列的算法
写法2
int sum = 0, n =100; // (1 + 100) * 50 = 5050 sum = (1+ n) * n/2; // 输入后果 5050 System.out.println(sum);
写法1算法每次计算须要挨个挨个的加。
写法2呢也就一瞬间的事他提前晓得了后果。
算法的个性:
输入 输出 有穷性 + 确定性 + 可行性 = 算法。
输入输出:
输出:具备0个或者多个的输出 一般来说 有参数是必要的。
输入:算法必须有1或多个输入,不须要输入写这个算法干嘛
输入模式能够是 打印或返回一个或多个值。
有穷性:
指算法在执行有用的步骤后,会主动完结而不会呈现无线循环
,并且在能够
承受的工夫实现。
确定性:算法每一步都是具备确定意义的,不会呈现二义性
算法在肯定条件下 只有一条执行路劲 雷同的输出只有惟一后果。
可行性 算法每一步都是可行的,每一步都要通过无限次数执行。
简称:快 准 稳 算的要块 要精确 要稳固 - 合乎逻辑。
学习内容为:<大话数据结构>