美文网首页
数据结构与算法-空间复杂度

数据结构与算法-空间复杂度

作者: Joker_King | 来源:发表于2020-04-05 11:37 被阅读0次

程序空间计算的因素

  1. 寄存器本身的指令。
  2. 常数。
  3. 变量。
  4. 输入。
  5. 对数据进行操作的辅助空间。

我们在考量算法的空间复杂度时,主要考量算法执行时所需要的辅助空间。

问题: 数组逆序,将一维数组a中的n个数逆序存放在原数组中.

int n = 5;
int a[10] = {1,2,3,4,5,6,7,8,9,10};
//算法实现
int temp;
for(int i = 0; i < n/2 ; i++){
    temp = a[i];
    a[i] = a[n-i-1];
    a[n-i-1] = temp;
}

for(int i = 0;i < 10;i++)
{
    printf("%d\n",a[i]);
}

这段代码使用到的辅助空间是有一个temp,为常数阶,所以他的空间复杂度为O(1)

int n = 5;
int a[10] = {1,2,3,4,5,6,7,8,9,10};

int b[10] = {0};
for(int i = 0; i < n;i++){
    b[i] = a[n-i-1];
}
for(int i = 0; i < n; i++){
    a[i] = b[i];
}
for(int i = 0;i < 10;i++)
{
    printf("%d\n",a[i]);
    
}

这段代码使用一个数组的辅助空间先把一个数组中的元素倒序存入一个新的数组中,新的数组所开辟的空间大小是原数组的空间大小。如果原数组中数组元素的个数为n个,那么它就需要开辟n个辅助空间,所以这段代码的空间复杂度为O(n)

相关文章

  • 一位算法工程师的自我修养

    数据结构与算法 基本算法思想动态规划贪心算法回溯算法分治算法枚举算法 算法基础 时间复杂度 空间复杂度 最大复杂度...

  • 数据结构与算法-复杂度分析

    时间、空间复杂度:衡量算法执行小路的指标,数据结构与算法离不开时间、空间复杂度分析,复杂度分析是算法的精髓。 为什...

  • 数据结构学习大纲

    第一章 绪论 数据结构基本概念数据结构基本概念算法的基本概念算法的时间复杂度与空间复杂度分析基础时间复杂度分析空间...

  • 数据结构与算法 - 查找

    数据结构与算法系列文章数据结构与算法 - 时间复杂度数据结构与算法 - 线性表数据结构与算法 - 树形结构数据结构...

  • 数据结构与算法 - 树形结构

    数据结构与算法系列文章数据结构与算法 - 时间复杂度数据结构与算法 - 线性表数据结构与算法 - 树形结构 目录 ...

  • 实用数据结构与算法

    前言   本文主要介绍在现实生产环境使用较多的高效搜索数据结构与算法。空间、性能、实现复杂度一直都是数据结构与算法...

  • 八大内部排序总结

    程序 = 数据结构 + 算法 程序好坏 = 时间复杂度 + 空间复杂度 + 应用场景 如何选择算法应用的场景:根据...

  • 字节算法大神熬了三个通宵整理的数据结构与算法笔记(万字长文)

    数据结构与算法(一) 时间&空间复杂度 数据结构和算法的本质是解决“快”和“省”的问题:即如何让代码运行得更快、更...

  • 数据结构(一)时间复杂度

    简介:如果想对数据结构和算法有基本的了解和认识,那么算法复杂度是前提,算法复杂度包含时间复杂度和空间复杂度,具体概...

  • 数据结构与算法 复杂度分析

    复杂度:时间复杂度和空间复杂度。复杂度的分析是学习数据结构与算法的基础! 极简概述 复杂度的分析已经有很多很好...

网友评论

      本文标题:数据结构与算法-空间复杂度

      本文链接:https://www.haomeiwen.com/subject/pkxuphtx.html