![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
翟羽嚄
这个作者很懒,什么都没留下…
展开
-
算法的时间复杂度与空间复杂度
算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,但在过程中消耗的资源和时间却会有很大的区别。那么我们应该如何去衡量不同算法之间的优劣呢?主要还是从算法所占用的「时间」和「空间」两个维度去考量。时间维度:是指执行当前算法所消耗的时间,我们通常用「时间复杂度」来描述。空间维度:是指执行当前算法需要占用多少内存空间,...原创 2019-10-24 10:48:15 · 658 阅读 · 0 评论 -
栈的作用
一.栈的整体作用(1)保存现场/上下文(2)传递参数:汇编代码调用c函数时,需传递参数(3)保存临时变量:包括函数的非静态局部变量以及编译器自动生成的其他临时变量。二.为什么汇编代码调用c函数需要设置栈之前看了很多关于uboot的分析,其中就有说要为C语言的运行,准备好栈。而自己在Uboot的start.S汇编代码中,关于系统初始化,也看到有栈指针初始化这个动作。但是,从来只是看到有人说...原创 2018-10-28 01:52:40 · 4907 阅读 · 0 评论 -
数据结构与算法读书笔记——栈的应用
数据结构与算法——栈的应用栈的引入简化了程序设计的问题,划分了不同的关注层次,使得思考范围缩小,更加聚焦于要解决的问题核心。反之,像数组等,因为要分散精力去考虑数组的下标增减等细节问题,反而掩盖了问题的本质。应用一:递归,斐波那契数列/* 斐波那契序列的两种表示 */ #include<stdio.h> void fbi_iterator(int len); /* 递归表示...原创 2018-10-28 01:49:40 · 571 阅读 · 0 评论 -
算法的时间复杂度
算法时间复杂度1.算法的效率虽然计算机能快速的完成运算处理,但实际上,它也需要根据输入数据的大小和算法效率来消耗一定的处理器资源。要想编写出能高效运行的程序,我们就需要考虑到算法的效率。算法的效率主要由以下两个复杂度来评估:时间复杂度:评估执行程序所需的时间。可以估算出程序对处理器的使用程度。空间复杂度:评估执行程序所需的存储空间。可以估算出程序对计算机内存的使用程度。设计算法时,一般...原创 2018-10-22 02:33:02 · 650 阅读 · 0 评论 -
数据结构与算法经典书籍——大话数据结构(带配套源码)
书本下载链接:链接:https://pan.baidu.com/s/1jgVnbBZoLgA8pshpxbapOQ 密码:577l配套程序链接:https://pan.baidu.com/s/1HYka42KngWT2el7T0HO7LA 密码:i6hw虽说数据结构以美国人Mark Allen Weiss 写的《数据结构与算法分析——C语言实现》最好,但是我发现他的书让人很不容易理解,可能我们...原创 2018-10-26 00:20:03 · 60848 阅读 · 106 评论 -
算法空间复杂度
算法空间复杂度我们在写代码时,完全可以用空间来换取时间,比如说,要判断某某年是不是闰年,你可能会花一点心思写了一个算法,而且由于是一个算法,也就意味着,每次给一个年份,都是要通过计算得到是否是闰年的结果。 还有另一个办法就是,事先建立一个有2050个元素的数组(年数略比现实多一点),然后把所有的年份按下标的数字对应,如果是闰年,此数组项的值就是1,如果不是值为0。这样,所谓的判断某一年是否是闰年...原创 2018-10-22 20:05:50 · 2263 阅读 · 0 评论 -
C语言中结构体占用内存问题——字节对齐
C语言中结构体占用内存问题普通数据类型比如int char float 我们很清楚知道它们占用几个内存,比如int占用4个字节,char占用一个字节等等,知道数据类型占用多少内存是很重要的,可以使我们的程序效率更高、运行速度更快、快速知道自己程序的bug…这道题是自己秋招时迈普通信嵌入式软件开发的一道笔试题,面试时也问了,当时自己回答的有些混乱,因此今天进行记录。之前对结构体占用内存一直很混...原创 2018-10-03 17:26:19 · 1124 阅读 · 0 评论 -
数据结构与算法——链表
链表定义链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构,操作复杂。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多...原创 2018-10-03 16:50:08 · 445 阅读 · 0 评论