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

算法初步

chanra1n5年前 (2019-10-25)算法5449

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

    1、按部就班累加

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

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

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


算法有5个特性:

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

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

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

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

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


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

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

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

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

分享给朋友:

“算法初步” 的相关文章

广义表输出二叉树

广义表输出二叉树

广义表输出二叉树用到的主要是递归,递归的整个过程类似于栈,一层一层进去,最终会一层一层退出来,进去和退出的顺序跟栈的性质一致。#include<stdio.h> #include<stdlib.h> typedef struct tnode{ ch...

顺序和二分法查找 (C C++)

顺序和二分法查找 (C C++)

#include<stdio.h> #include<stdlib.h> #define MAXSIZE 100 int cnt=0;//定于总共有多少个成员  typedef int KeyType; //...

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

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

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

(LeetCode刷题)1. 两数之和

(LeetCode刷题)1. 两数之和

题目解答一:/**  * Note: The returned array must be malloced, assume caller calls free(). &nbs...

(LeetCode刷题)2. 两数相加

(LeetCode刷题)2. 两数相加

题目解答一:简单实现思路:先遍历完两个链表,把各自的数字存入两个数组,然后对应位置的数相加,若结果大于10就进位到更高位的数。/**  * Definition for singly-linked list->  * s...

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

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

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