版权声明:https://blog.csdn.net/Burgess_Lee https://blog.csdn.net/Burgess_Lee/article/details/83387306
一、算法一些基础概念
1.算法概念
所谓的算法就是 对特定问题的解决步骤。
此处的特定问题一般指定是对信息进行排序,搜索目标信息等不同的问题。
对于此问题,可以类比一下菜谱,也就是做菜的步骤。
2.算法的目的
需求更优雅的解法。
3.了解算法对玩游戏是否有帮助(此处是书中的一个小的章节,暂且整理到这里)
关键术语:
定式:围棋术语,在某种局面下最优的固定的下法。
棋式:国际象棋等术语,类似于上面的解释。
计算机的算法也是如此,一个学习过算法的人,即使没有多高的天分,在编写同样功能的程序时,完成度比没有学习过算法的人有明显的优势。
4.算法的两个必要条件
准确性
对相应的问题,算法必须能够给出正确的结果。指的是输入符合指定条件的值,一定要保证能得到正确的输出。当然也存在一些边界性输入的问题。
断言:对于算法的任意一个步骤,输入当前步骤满足的条件的值,看是否能得到当前步骤产生的准确的结果,以此细分并判定。
可停止性
保证无论什么样的输入,也一定可以在有限的时间内正确的停止。
5.要了解特别重要的算法
专于数论计算法的算法
比如求解最大公约数的辗转相除法,求解联立方程的高斯消元法,求解定积分近似值的梯形公式,计算质数的埃拉托斯特尼筛法等
一组数据进行升序或者降序的排序算法
比如选择排序,冒泡排序,插入排序,希尔排序,归并排序,快速排序
大量数据找出目标数据的搜索算法
线性搜索,二分搜索
在一个字符串中找出符合特定模式的子串的匹配算法
简单字符串搜索,KMP算法,BM算法
二、结构化编程思想
旨在高效描述程序,最大限度的减少设计误差的方法论。
所有的流程通过三种结构顺序结构,选择结构,循环结构组合来表示。
以上就是本篇博文介绍的内容。下篇将对变量和数组等数据方面进行介绍和记录,欢迎大家的关注。