一、概述
语言只是工具,算法才是程序设计的灵魂。
算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,
算法代表着用系统的方法描述解决问题的策略机制。
对于同一个问题的解决,可能会存在着不同的算法,为了衡量一个算法的优劣,
提出了**空间复杂度**与**时间复杂度**这两个概念。
算法类型:
1:查找算法
2:排序算法
3:其它算法
1:时间复杂度
一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数f(n),
算法的时间度量记为 ** T(n) = O(f(n)) **,它表示随问题规模n的增大,
算法执行时间的增长率和f(n)的增长率相同,称作算法的渐近时间复杂度,简称时间复杂度。
这里需要重点理解这个增长率。
2:空间复杂度
空间复杂度是对一个算法在运行过程中临时占用存储空间大小的量度,记做S(n)=O(f(n))。
一个算法的优劣主要从算法的执行时间和所需要占用的存储空间两个方面衡量。
3:排序算法的稳定性:
稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面
不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面;
4:外排序和内排序:
内排:数据量一般,可以在内存中进行排序;
外排:如果数据过大,则需要借助外设磁盘进行数据的存储交换;
https://www.cnblogs.com/onepixel/articles/7674659.html
github demo: https://github.com/Praxiology/2018
参考:https://www.cnblogs.com/onepixel/articles/7674659.html