wordpress开发企业网站,济南高端网站设计,乌克兰武装部队最新战报,开发一个手游需要多少钱文章目录 1. 数据结构2. 算法3. 算法效率4. 算法复杂度5. 算法时间复杂度5.1 大O的渐进表示法5.2 时间复杂度示例 6. 空间复杂度6.1 练习16.2 练习26.3 练习3 1. 数据结构 数据结构是计算机存储、组织数据的方式#xff0c;指相互之间存在一种和多种特定关系的数据元素的集合指相互之间存在一种和多种特定关系的数据元素的集合常见的有线性表、树、图、哈希等 2. 算法 算法就是制定一个良好的计算过程取一个或一组值作为输入并产生一个或一组值作为输出简单来讲算法就是一系列的计算步骤用来将输入数据转化为输出结果 3. 算法效率 我们先来看个简单的例子 这个时候可能就满足不了那么我们如何去判断一个代码的好坏呢
4. 算法复杂度 衡量一个算法的好坏一般是从时间和空间两个维度来衡量的时间复杂度主要衡量一个算法运行速度快慢而空间复杂度主要衡量一个算法运行所需要的额外空间 5. 算法时间复杂度 为什么不用程序执行速度的快慢来作为判断一个算法的好坏呢这是因为相同的程序在不同的计算机、不同的编译器上、乃至同一台计算机上执行速度都有所不同并且时间只能在程序编写好后才可以进行测试因此它不会直接用来作为衡量程序好坏的标准 计算机科学规定了作为衡量一个算法好坏的算法时间复杂度是一个表达式T(N),它用来计算程序的执行次数如果一个算法a程序的T(N)N,另一个算法b程序的T(N)N^2,那么算法a的效率一定优于算法b 5.1 大O的渐进表示法 前面我们讲过T(N)表达式中可能存在对它影响很小的变量和常量因此我们需要抓大头来表示程序的变化趋势因此就引入了大O的渐进表示法 大O表示规则时间复杂度表达式T(N)中只保留高阶项去掉低阶项用来表示程序执行次数变化的趋势如果高阶项存在不是1不将与高阶项相关的常数系数计算在内因为随着N不断变大常数系数对结果影响也不大T(N)中如果高阶项就是常数那么直接写成O(1),用1来代替所有的常数其中1并不表示程序只执行一次而是表示它与执行算法所需的时间与输入数据的数量或大小无关 5.2 时间复杂度示例 通过上述例子可以看出大O渐进表示法一般关注的是算法的上界也就是最坏的运行情况 6. 空间复杂度 函数运行时所需要的栈空间存储参数、局部变量、一些寄存器信息等在编译器期间已经确定好了因此空间复杂度主要考虑函数在运行时额外申请的空间空间复杂度也用大O表示法 6.1 练习1 6.2 练习2 创建新的数组将k个数据放入新的数组中再将剩下的数据放进去空间复杂度O(N) 6.3 练习3 空间复杂度O(1)