数据结构与算法
嵌入式Max
手机 Camera 软件研发。
技能:V4L2、音视频处理软件框架-openMAX、Android Camera、ISP 处理
展开
-
嵌入式系统的数据结构与算法
原创 2019-01-13 15:07:49 · 4909 阅读 · 0 评论 -
数据结构与算法对嵌入式来说能有(zhuan)用(qian)吗
这篇不是写技术细节的,而是在之前学过的排序算法以及部分其它的数据结构与算法之后,个人的一些感觉,主要包括两个方面:怎么去学习这些枯燥的东西?学习这个到底有没有用?遥想当年,在我还年轻的时候,接触过一次数学建模比赛,那个时候是帮别个某人做的,我自己并没有报名参加,那个时候算是第一次比较细节的接触了算法的内容,我还很清楚的记得题目他们选的是:在一个给定的超大规模 DNA 序列里面查找给定任意长度的...原创 2019-05-12 14:35:51 · 1914 阅读 · 0 评论 -
查找1-查找算法知识图谱
本文算是查找算法的序章,主要对接下来会涉及到的查找算法类型做一个铺叙,不涉及到具体的算法实现。查找算法算是数据结构与算法并重的一类知识点了,像之前的排序,其实大多数时候只涉及到简单的顺序线性表结构,但是查找可能会涉及到二叉树、哈希表等更稍微复杂一点的数据结构。还是按照我之前自己订阅的「数据结构与算法之美」专栏的顺序来写,这算是我个人的一个学习路程总结,还是想说下,这个专栏的特点是把一些基础数据...原创 2019-05-12 14:20:53 · 1443 阅读 · 0 评论 -
排序5-线性排序
这篇就算是排序系列的最后一篇了,本想着再搞一个总结式的通用排序函数,实际上也实现了一多半了,但是发现要优化到与 C 库里面的 qsort 一样的速度还是蛮困难的,于是就作罢了,时间紧迫,暂时以先掌握排序的思想为主,优化的工作留给以后的闲暇时间来搞。线性排序所谓线性排序就是时间复杂度在 O(N) 的排序算法,它们大多不是基于比较的,或者说最核心的地方不是基于比较的。本文里面涉及到的线性排序算法...原创 2019-04-14 15:37:47 · 1310 阅读 · 0 评论 -
排序4-归并排序与快速排序
排序3-插入选择排序排序2-冒泡排序排序1-几大经典排序算法隔了一周,整的差不多了,在学习的过程中会发现不管是什么样的数据结构或者是算法,最重要是要掌握其思想,还有少量核心的编程技巧,其它大部分都是边边角角的,这两个是核心,所谓要知其然,更要知其所以然,这样才能够应付众多的数据结构,否则每一个都要靠硬记是很伤神的。还有一个就是别人的代码不管写的再怎么简洁了,看起来还是比较难以理解,所以掌...原创 2019-03-31 15:10:59 · 583 阅读 · 0 评论 -
排序3-插入选择排序
排序2-冒泡排序排序1-几大经典排序算法本篇文章把插入排序与选择排序合在一起介绍了,插入排序与选择排序的实际时间消耗总体上都会比冒泡排序要更少一点,但是基本上它们的平均时间复杂度是一样的。另外,在对比的时候我全部采用了随机数组的形式测试,没有专门测试过倒序或者其它局部有规律的数组。本文就不贴完整的代码段了,只贴最核心的部分,不然显得太乱了。这里先贴下本文中有用得到的一些通用函数:stat...原创 2019-03-17 16:11:19 · 563 阅读 · 0 评论 -
排序2-冒泡排序
本篇文章介绍冒泡排序及其优化方式与改进算法,从最简单的冒泡排序开始,不断地升级算法处理方式,介绍包括「鸡尾酒排序」、「梳排序」相关的实现与原理。经典冒泡排序其基本原理在之前的文章里面已经说过,就是利用相邻待排序数组的数组元素大小比较并交换达到整个序列的排序目的。基本的过程如下图所示:图中红色的双向箭头就是指的比较与交换,图中的箭头指向的对象只是每一个元素的位置,并不是元素本身,它代表着「...原创 2019-03-10 17:25:49 · 734 阅读 · 0 评论 -
排序1-几大经典排序算法
[Github pages]本文仅先对一些经典的排序算法做一个比较简略的综述,后续会按照本文的算法列表顺序来进行逐个地实现以及剖析优化。本系列是自己学习过程中的总结,所以不免会记录一些看起来比较无聊的概念之类的东西,并且会有很多的不足之处。本文并不具体分析推导时间复杂度这些东西,它们会放到后面的独篇介绍里面去,这里相当于是一个大纲索引,走马观花看下都有哪些排序算法,有个全局的小概念。概念...原创 2019-03-03 20:32:58 · 2406 阅读 · 0 评论 -
队列1-环形缓冲区
本篇为队列的第一篇文章,介绍基于数组结构的一个环形缓冲区队列。我觉得没有必要再从数组来写起,毕竟对于数组本身来说,我觉得是没有太多可说的,但是基于数组的数据结构就有的说了。什么是环形缓冲区环形缓冲区,顾名思义就是一个环状的存储数据的区域,其空间使用数组进行构造(链表也可以)。环形缓冲区特点是读和写可以是分开的,写入数据之后可以先不去读取,等到需要读取的时候再去读取,并且数据一经读取之后就做...原创 2019-01-27 16:58:34 · 3541 阅读 · 4 评论 -
队列2-双向链表
原创 2019-01-27 16:43:08 · 1362 阅读 · 0 评论 -
查找2-二分查找
二分查找是基于基础的数组数据结构的算法,本文将按照二分查找的基础问题与变体问题来学习二分查找的代码实现与应用。之前的文章里面写过一个有关二分查找变体问题的几种情况,基础二分查找的对象主要是数组,通常有以下几个需求:查找第一个与给定值相等的值的位置。查找第一个大于给定值的位置。查找最后一个等于给定值的位置。查找最后一个小于给定值的位置。与给定值相等这个就包含了两种情况,一种是第一个...原创 2019-06-02 14:15:31 · 607 阅读 · 0 评论