当前位置:首页 > 算法 > 正文内容

算法初步

chanra1n7年前 (2019-10-25)算法8340

假设我让你计算1+2+3+...+5000等于多少,有两种常见的方法:

    1、按部就班累加

    2、使用公式,(首项+末项)*项数/2

假设你使用第一种方法从头到尾不出错的计算,可能也需要几个小时才能计算出来,但是如果你使用公式可能不到一分钟就得出了正确答案。

这就是我要说的算法,走最短的路,才能最快到底终点。


算法有5个特性:

1、需要足够的情报,就像上面的(首项+末项)*项数/2 这个公式一样,你需要知道首项、末项、项数才能正确的计算(需要足够的情报也可称为“输入项”)

2、有穷,既你的算法必须每个步骤都有有限的运行时间,不能无限地运行下去。

3、确定,使用每个不同的情报运行的算法的结果都不一样,但每个情报一定对应一个固定的结果。就像1的平方能也只能为1      2的平方能也只能为4

4、可行,算法一定要是可行的。

5、输出,算法的目的就是要得出结果,没有输出就不叫算法。


在本网站的算法教程或实例中,为了使得受用面更广,我们尽量采用C语言或者伪代码来表达,尽量减少C++和Java的比重。

扫描二维码推送至手机访问。

版权声明:本文由我的FPGA发布,如需转载请注明出处。

本文链接:https://world.myfpga.cn/index.php/post/32.html

分享给朋友:

“算法初步” 的相关文章

纸牌均分问题的简单实现-贪心

纸牌均分问题的简单实现-贪心

有 N 堆纸牌,编号分别为 1,2,…, N。每堆上有若干张,但纸牌总数必为N 的倍数。可以在任一堆上取若干张纸牌,然后移动。移牌规则为:在编号为 1 堆上取的纸牌,只能移到编号为 2 的堆上;在编号为 N 的堆上取的纸牌,只能移到编号为 N-1 的堆上;其他堆上取的纸牌,可以移到相邻左边或右边的堆...

常见算法的C语言实现(带题目、分析和答案) 穷举 递归 迭代 递推 分治 回溯 动态规划 贪心

常见算法的C语言实现(带题目、分析和答案) 穷举 递归 迭代 递推 分治 回溯 动态规划 贪心

1.1   基本思想1.1.1  穷举穷举(又称枚举)算法的基本思想是从所有可能的情况中搜索正确的答案。a)      题一查找数组中的两个元素,它们的和等于给定的目标值。给定一个包含 n 个整数的数组和一个目标值,找出...

(LeetCode刷题)3. 无重复字符的最长子串

(LeetCode刷题)3. 无重复字符的最长子串

题目:解法一:class Solution(object):     def lengthOfLongestSubstring(self,s):        &nb...