算法基础--01

版权声明:https://blog.csdn.net/Burgess_Lee https://blog.csdn.net/Burgess_Lee/article/details/83387306

一、算法一些基础概念

1.算法概念

所谓的算法就是 对特定问题的解决步骤。

此处的特定问题一般指定是对信息进行排序,搜索目标信息等不同的问题。

对于此问题,可以类比一下菜谱,也就是做菜的步骤。

2.算法的目的

需求更优雅的解法。

3.了解算法对玩游戏是否有帮助(此处是书中的一个小的章节,暂且整理到这里)

关键术语:

定式:围棋术语,在某种局面下最优的固定的下法。

棋式:国际象棋等术语,类似于上面的解释。

计算机的算法也是如此,一个学习过算法的人,即使没有多高的天分,在编写同样功能的程序时,完成度比没有学习过算法的人有明显的优势。

4.算法的两个必要条件

准确性

对相应的问题,算法必须能够给出正确的结果。指的是输入符合指定条件的值,一定要保证能得到正确的输出。当然也存在一些边界性输入的问题。

断言:对于算法的任意一个步骤,输入当前步骤满足的条件的值,看是否能得到当前步骤产生的准确的结果,以此细分并判定。

可停止性

保证无论什么样的输入,也一定可以在有限的时间内正确的停止。

5.要了解特别重要的算法

专于数论计算法的算法

比如求解最大公约数的辗转相除法,求解联立方程的高斯消元法,求解定积分近似值的梯形公式,计算质数的埃拉托斯特尼筛法等

一组数据进行升序或者降序的排序算法

比如选择排序,冒泡排序,插入排序,希尔排序,归并排序,快速排序

大量数据找出目标数据的搜索算法

线性搜索,二分搜索

在一个字符串中找出符合特定模式的子串的匹配算法

简单字符串搜索,KMP算法,BM算法

二、结构化编程思想

旨在高效描述程序,最大限度的减少设计误差的方法论。

所有的流程通过三种结构顺序结构,选择结构,循环结构组合来表示。

以上就是本篇博文介绍的内容。下篇将对变量和数组等数据方面进行介绍和记录,欢迎大家的关注。

猜你喜欢

转载自blog.csdn.net/Burgess_Lee/article/details/83387306