![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
king110108
从事汽车电子行业10年
展开
-
CRC-8 校验算法的表计算
CRC8算法表有两种形式,第一种是256个字节的表,第二种是高4位16字节,低4位16字节。根据不同多项式算出对应的表中的数据第一种方法:原创 2021-06-02 16:01:25 · 3772 阅读 · 0 评论 -
二叉树
二叉树的基本概念关于二叉树有一点需要注意:二叉树并不是树的一种特殊形式,二叉树时有序树。二叉树又有几种特殊的形式:最优二叉树(哈弗曼树)、二叉判定树、二叉排序树(二叉查找树)、二叉堆哈弗曼树哈弗曼树的特点就是带权路径长度最小,因此还叫最优二叉树。【哈夫曼树的构造】 根据哈弗曼树的定义,一棵二叉树要使其WPL值最小,必须使权值越大的叶子结点越靠近根结点,而权值越小的叶子结点越远离...转载 2018-05-14 08:44:47 · 270 阅读 · 0 评论 -
排序法总结与比较
排序:对一序列对象根据某个关键字进行排序;稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面; 例如:插入排序、冒泡排序、归并排序、计数排序、基数排序、桶排序不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面; 例如:希尔排序、快速排序、选择排序、堆排序内排序:不占用额外内存或占用常数的内存; ...转载 2018-05-14 08:45:59 · 228 阅读 · 0 评论 -
数据结构概述
一、算法的基本概念计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法。1、算法的基本特征:可行性,确定性,有穷性,拥有足够的情报。2、算法的基本要素:算法中对数据的运算和操作、算法的控制结构。3、算法设计的基本方法:列举法、归纳法、递推、递归、减半递推技术、回溯法。4、算法设计的要求:正确性、可读性、健壮性、效率与低存储量需求二、算法的复杂度1、时间...转载 2018-05-14 08:46:51 · 128 阅读 · 0 评论 -
栈与队列
【栈】 栈是一种特殊的线性表。其特殊性在于限定插入和删除数据元素的操作只能在线性表的一端进行。也就是:后进先出(Last In First Out),简称为LIFO线性表。栈的基本运算有六种:构造空栈:InitStack(S)判栈空: StackEmpty(S)判栈满: StackFull(S)进栈: Push(S,x) 可形象地理解为压入,这时栈中会多一个元素退栈: Po...转载 2018-05-14 08:48:07 · 433 阅读 · 0 评论 -
线性表
1、线性表:具有相同类型数据元素的有限序列线性表的长度:有限序列中所含元素的个数头元素:线性表的第一个元素,无前驱尾元素:线性表的最后一个元素,无后继基本操作:增删改查2、顺序表:线性表的顺序存储,用一段连续的地址依次存储,c语言中用一维数组(1)顺序表的存储结构:[cpp] view plain copy #define MAXLENGTH 20 struct sequencelist...转载 2018-05-14 08:49:32 · 154 阅读 · 0 评论 -
各种排序算法原理
一、插入排序 插入排序就是将一个待排数据按其大小插入到一个有序表的适当位置,并插入后仍有序。工作原理是构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。分为三类:直接插入排序;折半插入排序;希尔插入排序。 【直接插入排序】 一般来说,插入排序都采用in-place在数组上实现。具体算法描述如下: 1、从第一个元素开始,该元素可以认为已经被排序 ...原创 2018-05-14 08:51:07 · 1986 阅读 · 0 评论 -
二叉树基本概念
一、树的基本概念(1)树(Tree)的概念:树是一种递归定义的数据结构,是一种重要的非线性数据结构。 树可以是一棵空树,它没有任何的结点;也可以是一棵非空树,至少含有一个结点。(2)根(Root):有且仅有一个结点的非空树,那个结点就是根。(3)子树(Subtree):在一棵非空树中,除根外,其余所有结点可以分为m(m≥0)个互不相交的集合。每个集合...转载 2018-05-14 08:52:08 · 506 阅读 · 0 评论 -
ECC内存校验算法
ECC的全称是Error Checking and Correction,是一种用于Nand的差错检测和修正算法。如果操作时序和电路稳定性不存在问题的话,NAND Flash出错的时候一般不会造成整个Block或是Page不能读取或是全部出错,而是整个Page(例如512Bytes)中只有一个或几个bit出错。ECC能纠正1个比特错误和检测2个比特错误,而且计算速度很快,但对1比特以上的错误无...转载 2018-05-15 12:52:35 · 6091 阅读 · 0 评论 -
ECC内存校验算法实现
/****************ECC memory check ***********************/static const u_char nand_ecc_precalc_table[] ={ 0x00, 0x55, 0x56, 0x03, 0x59, 0x0c, 0x0f, 0x5a, 0x5a, 0x0f, 0x0c, 0x59, 0x03, 0x56, 0x55, 0...原创 2018-05-15 13:36:14 · 4501 阅读 · 0 评论 -
75道程序员面试逻辑题和答案
【1】假设有一个池塘,里面有无穷多的水。现有2个空水壶,容积分别为5升和6升。问题是如何只用这2个水壶从池塘里取得3升的水。【2】周雯的妈妈是豫林水泥厂的化验员。 一天,周雯来到化验室做作业。做完后想出去玩。 "等等,妈妈还要考你一个题目,"她接着说,"你看这6只做化验用的玻璃杯,前面3只盛满了水,后面3只是空的。你能只移动1只玻璃杯,就便盛满水的杯子和空杯子间隔起来 吗?" 爱动脑筋的周雯,...转载 2019-03-05 21:09:16 · 939 阅读 · 0 评论 -
加法乘法原理、排列组合、线性规划
【排列组合】1、加法原理与乘法原理加法原理:分类思想。一个事件的发生,分为几类事件的发生,通俗的说是好几种情况的发生。乘法原理:分步思想。一个事件的发生,分为几个子事件分步发生。 这里要注意:(1)子事件:如何把事件划分为几个子事件呢,子事件是独立的,内部发生的概率一样。(2)分步,子事件安步骤完成2、排列与组合排列:从n个不同的...转载 2018-05-14 08:43:46 · 1895 阅读 · 0 评论 -
Search算法原理
由于查找运算的使用频率很高,几乎在任何一个计算机系统软件和应用软件中都会涉及到,所以当问题所涉及的数据量相当大时,查找方法的效率就显得格外重要。在一些实时查询系统中尤其如此。查找的基本概念1、查找表和查找 一般,假定被查找的对象是由一组结点组成的表(Table)或文件,而每个结点则由若干个数据项组成。并假设每个结点都有一个能惟一标识该结点的关键字。 查找(Searching)的...原创 2018-05-14 08:42:26 · 1499 阅读 · 0 评论 -
10种软件滤波方法
1、限幅滤波法(又称程序判断滤波法) A、方法: 根据经验判断,确定两次采样允许的最大偏差值(设为A) 每次检测到新值时判断: 如果本次值与上次值之差 如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值 B、优点: 能有效克服因偶然因素引起的脉冲干扰 C、缺转载 2015-05-01 21:43:05 · 1515 阅读 · 0 评论 -
有序表的查找(折半查找)
有序表:对于以数组方式存储的数据,如果已经按其关键字值的大小顺序排列好,则称为有序数组或有序表。 对有序表可以采用折半查找(binary search),又称二分查找。 设有序数组r中每个记录的关键字值按升序排列为: r0.key, r1.key, r2.key, …, rm.key, …, rn-1.key 其中,n为记录个数。当i<j时,有ri.ke转载 2015-12-28 13:09:10 · 5340 阅读 · 0 评论 -
mpu6050六轴传感器msp430驱动程序
玩智能车的可以参考#include #include"mpu6050.h"#include "USCI_A0.h"#include "IMU.h "/* * ======== BCSplus_graceInit ======== * Initialize MSP430 Basic Clock System */void BCSplus_graceInit(void){转载 2016-01-12 13:19:21 · 6435 阅读 · 2 评论 -
C语言 一个crc32校验算法
#include static const uint32_t crc32tab[] = { 0x00000000L, 0x77073096L, 0xee0e612cL, 0x990951baL, 0x076dc419L, 0x706af48fL, 0xe963a535L, 0x9e6495a3L, 0x0edb8832L, 0x79dcb8a4L, 0xe0d5e91eL, 0x97d2d转载 2017-07-13 15:58:23 · 7960 阅读 · 2 评论 -
CRC16校验算法程序
const unsigned char code auchCRCLo[] = {0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x8转载 2017-07-13 16:12:43 · 1250 阅读 · 0 评论 -
PID控制及位置式与增量式区别
转载 2017-08-10 14:54:37 · 1665 阅读 · 0 评论 -
位置式和增量式PID控制
PID控制是一个二阶线性控制器 定义:通过调整比例、积分和微分三项参数,使得大多数的工业控制系统获得良好的闭环控制性能。 优点 a. 技术成熟 b. 易被人们熟悉和掌握 c. 不需要建立数学模型 d. 控制效果好 e. 鲁棒性 通常依据控制器输转载 2017-08-10 14:56:12 · 1847 阅读 · 1 评论 -
PID控制最通俗的解释与PID参数的整定方法
PID是比例、积分、微分的简称,PID控制的难点不是编程,而是控制器的参数整定。参数整定的关键是正确地理解各参数的物理意义,PID控制的原理可以用人对炉温的手动控制来理解。阅读本文不需要高深的数学知识。 1.比例控制 有经验的操作人员手动控制电加热炉的炉温,可以获得非常好的控制品质,PID控制与人工控制的控制策略有很多相似的地方。 下面介绍操作人员怎转载 2017-09-06 09:10:29 · 575 阅读 · 0 评论 -
数据结构之算法时间复杂度
数据结构之算法时间复杂度原文链接 算法的时间复杂度定义为:在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级。算法的时间复杂度,也就是算法的时间量度,记作:T(n}=0(f(n))。它表示随问题规模n的增大,算法执行时间的埔长率和 f(n)的埔长率相同,称作算法的渐近时间复杂度,简称为时间复杂度。其中f( n)转载 2017-09-12 12:16:34 · 538 阅读 · 0 评论 -
坐在马桶上看算法:快速排序
高快省的排序算法有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”啦!光听这个名字是不是就觉得很高端呢。假设我们现在对“6 1 2 7 9 3 4 5 10 8”这个10个数进行排序。首先在这个序列中随便找一个数作为基准数(不要被这个名词吓到了,就是一个用来参照的数,待会你就知道它用来做啥的了)。为了方便,就让第一个数6作为基准数吧。接下来,需要将这个序列转载 2017-11-01 16:15:25 · 266 阅读 · 0 评论 -
查找数组某个元素的下标
昨天写了个程序查找数组元素的下标。折腾了好久才弄出来,自己写出来总结一下。如果要查找某个元素的下标,我们必须知道这个元素的值val是多少,然后要知道数组的首地址pst,和数组的总元素个数len。我们从右往左依次查询数组元素的值看是否等于val,如果等于val就返回该下标,不等于就继续查询。这里涉及到递归算法,实际就是如果查最后一个元素是否我们所查询的值,如果是我们输出len-1就为该值的下标,原创 2015-06-07 11:15:51 · 16111 阅读 · 0 评论