自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (1)
  • 收藏
  • 关注

原创 排序算法总结——十大排序算法

       排序算法可以说是数据结构与算法系列中的精华,常用的排序算法一般来说有十种,包括插入排序、选择排序、冒泡排序、梳排序、希尔排序、堆排序、快速排序、归并排序、基数排序以及计数排序。接下来,我将根据自己的理解对这10种排序算法进行简单的分析总结。为了统一,以下排序都遵循从小到大的原则。 插入排序       1.算法分析        插入排序排序其实跟后面的排序有些不一样,...

2019-01-03 21:08:20 387

原创 b_tree的实现

      前面我们已经讲过二叉树的基本操作,现在我们进一步探讨一下B_Tree。B_Tree是一种多叉树,m阶B-Tree满足以下条件:1、每个节点最多拥有m个子树2、根节点至少有2个子树3、分支节点至少拥有m/2颗子树(除根节点和叶子节点外都是分支节点)4、所有叶子节点都在同一层、每个节点最多可以有m-1个key,并且以升序排列       这四句话看起来是不是有点绕,没事...

2018-12-17 22:19:45 310

原创 二叉查找树实现(六)——AVL树(平衡二叉树)

     二叉查找树最大的功能就是用来方便查找,当有N个数时,可以将查找某个数的复杂度降为O(logN),但是有一种情况下,这种复杂度无法实现,那就是当二叉树退化成链表,这种情况下,查找的复杂度是O(N),因此我们就要考虑建立二叉树时要避免退化成链表,也就是所谓的建立AVL树(平衡二叉树)。     首先什么叫AVL树?AVL树的意思是一个树所有节点的左右子树的高度差不超过1,那么这棵树就是A...

2018-12-11 16:12:38 238

原创 二叉查找树实现(五)——Morris遍历算法

     前面已经关于二叉树遍历,已经学习了递归遍历以及非递归遍历,其中非递归遍历需要直接用到栈,空间复杂度O(n),递归遍历由于用到递归,因此也需要调用栈,空间复杂度同样是O(n),那么有没有一种遍历算法的空间复杂度是O(1)呢?答案就是Morris算法。      Morris算法跟线索树有一点相似,都是通过利用数中空的指针域来方便遍历,但是Morris算法不需要提前对树遍历一边以建立线索...

2018-11-30 16:40:17 241

原创 二叉查找树的实现(四)——线索树的建立

       首先,我们探讨一下为什么要建立线索树,两点原因:(1)在之前我们探讨过二叉树的中序遍历,中序遍历的顺序是LVR,也就是访问完左节点后再回来访问中间节点,也就是说中间节点作为左节点的后继节点,但是问题在于左节点是中间节点的子节点,而我们不可能直接通过二叉树的子节点去访问父节点,这并不是一个可逆的操作。遍历操作中是通过栈结构完成这种操作的,那么我们能不能不用栈实现这种操作呢?(2...

2018-11-26 22:32:31 603

原创 二叉查找树的实现(三)——递归遍历操作

     前面我们说到二叉查找树的遍历可以分为广度优先遍历以及深度优先遍历,我们也通过非递归的方式实现了这两种遍历。实际上二叉查找树的遍历可以细分为更多种方式。     我们假定对二叉查找树的遍历中有三个任务:V(输出当前节点),L(访问左结点),R(访问右节点),根据V、L、R三者不同的顺序我们可以得出6种不同的遍历方式:VRL,VLR,LRV,LVR,RLV,RVL。再假设我们规定访问时都...

2018-11-21 11:32:28 858 2

原创 C++:二叉查找树实现(二)——非递归遍历操作

     建立好二叉树,有时候我们需要对整个二叉树锦星遍历,即输出二叉树的所有结点元素。理论上,遍历的方式有无数种,顺序可以自己任意选定,但是绝大部分遍历方式在实际中并没有用处,比较有用的的遍历方式有两种:广度优先遍历、深度优先遍历。实现这两种遍历可以考虑利用栈以及队列的特性。(1)广度优先遍历        广度优先遍历的意思是每次优先遍历完一层的所有子节点,遍历完N层子节点后再遍历N+...

2018-11-17 16:57:39 417

原创 C++:二叉树查找的实现(一)——插入操作

    二叉查找树,又称二叉排序树,是具有下列性质的二叉树:    (1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;   (2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;   (3)左、右子树也分别为二叉排序树;    (4)没有键值相等的节点。   图1就是一个典型的二叉查找树:        对二叉查找树的操作包括建立、插入、查找、遍...

2018-11-16 20:33:41 3161 3

原创 N皇后问题:递归加回溯(后续改进中)

       递归思想本身就比较难以理解,再加上回溯,整个过程更加扑所迷离。其实对于复杂的递归过程特别是非尾递归,很多时候已经不能一步一步地去分析函数调用,因为这样迟早会进死胡同。设计一个递归程序时,只要从数学逻辑上建立好递归模型,然后将该模型翻译成程序语言。       N皇后问题非常经典不需要重述,其实整个问题难点在于要找出所有的棋盘组合,试想如果只需要找出其中一种情况的话,问题就会简单很...

2018-11-03 15:28:05 268

原创 C++单链表的创建:头插法与尾插法

       链表是指用若干个结点连接在一起用于存储数据的数据结构,这些节结在物理内存上是离散的,但是在逻辑存储上是连续的。每个节结由两部分组成,如图1,第一部分用于存储数据,第二部分是一个指针,指针类型与结点类型相同,用于指向下一个结点。                                                                              ...

2018-10-29 15:53:46 13214

原创 牛客网刷题知识积累(持续更新)

2018.10.181、无论哪种类型的指针,占得字节大小都是4(32位系统),因为指针本质上是地址,这个地址的大小存在一个int数据中2、reinterpret_cast<>用于将一种类型指针强制转换为另一种指针,比如指向int型指针指向char型数据编译器是不让通过的,但是可以先用char型指向,再将其转化为int型,重点在于,之前char型指针自增时,只会挪一位,但int型...

2018-10-18 22:23:11 148

转载 C++ Lazy Evaluation:懒惰评估

在C++中这里的拖延战术拥有一个非常优雅的名字 -- Lazy evalution。一旦你的程序中使用了lazy evaluation,那么你就可以在你实际需要某些动作时编写相应的代码,如果不需要,那么相应的动作也就永远都不会执行。那么我们在什么时候会用的上这样的技术呢?Reference Counting 引用计数...

2018-10-18 21:25:29 881

转载 智能指针与内置指针混合使用问题

C++中的shared_ptr是一个很好用的东西, 但是有些地方不注意也会带来很不必要的麻烦。class test_ptr{};typedef shared_ptr<test_ptr> TestPtr;int main(){    test_ptr* pTest = new test_ptr;    TestPtr sharePTest(pTest);    d...

2018-10-17 18:49:50 521

原创 C++:cin,cin.get(),cin.getline(),getline()的坑

       C++通过iostream提供了丰富的输入方法,最常用的就是cin,cin.get()以及cin.getline(),另外还有getline(),但是getline()与前是三个不同,属于stream流.这三个输入入函数应用的时候会有些差别,导致写程序时会产生许多坑。1、cin使用时在无法保留tab、空格、空格,因此在输入空格时,会将空格前后视为两个输入,例如输入time out...

2018-10-10 16:58:34 276

原创 学习工作总结(一)——信道编码与BOK调制

       最近与老师交流之后,感觉自己缺乏总结的习惯,很多东西学完之后过一段时间就忘记了,因此决定以后每个月至少要写一篇博客来总结自己一段时间的学习工作心得。本篇博客是弥补前段时间做完一个小项目却没有写工作总结,这个项目是跟着老师做的,主要内容是利用FPGA实现信道编码与BOK—Chirp调制,进行时序仿真并移植到NI平台上。主要分为三个阶段的任务:目录一、信道编码1、数据源的产生...

2018-10-08 10:34:10 1710

原创 差分编码解析以及FPGA实现

1、差分编码解析绝对码bn(输入信号) 0 0 1 0 1 1 0 0 0 相当码dn-1(dn延迟后的相对码) 0(保证第一个输出就是绝对码本身) 0 0 1 1 0 1 1 1 相对码dn(输出信号) 0(输出初始值是绝对码) 0 1 1 0 ...

2018-08-06 15:36:08 14508

原创 关于打开软件提示各种缺少dll问题

  打开软件时,如果提示你缺少msvcp.dll等dll文件,这代表你的windows安装时可能丢失了这些dll文件,网上看到很多方法,都是说下载一个dll修复软件就可以解决,然而试了很多次发现dll修复软件大多只修复与游戏有关的dxdp9.dll系列文件,所以很多时候并不管用,这里推荐一个亲身试过的有效方法:      大多数情况下,缺少这些dll文件只是因为你的电脑缺少最新版的visu...

2018-07-26 22:34:57 11352 1

转载 matlab生成mif文件代码(以数据位宽15,深度1024为例)

F1=1; %信号的频率Fs=1024;%采样频率P1=0;%信号初始相位N=1024;%采样点数为Nt=[0:1/Fs:(N-1)/Fs];%采样时刻A=2^15;%信号幅度s=A*cos(2*pi*F1*t);%生成信号plot(s);%绘制图形grid on;fild = fopen('G:\Users\ccp\Desktop\cos.mif','wt');%创建mif文...

2018-07-26 22:20:52 1407 1

原创 matlab读数据

 1、 matlab读txt文件,如果是纯数据文件,最方便的指令是importdata('file.txt'),这样读出来的数据直接放进一个数组里3、matlab中,如果要将无符号数据转为有符号数据,可以利用公式B=A(当A<2^(w-1));B=A-2^w(当A>=2^(w-1)),其中w是无符号数最高次幂...

2018-07-26 22:18:11 257

转载 FPGA可综合风格代码

#1:当为时序逻辑建模,使用“非阻塞赋值”。#2:当为锁存器(latch)建模,使用“非阻塞赋值”。#3:当用always块为组合逻辑建模,使用“阻塞赋值”#4:当在同一个always块里面既为组合逻辑又为时序逻辑建模,使用“非阻塞赋值”。#5:不要在同一个always块里面混合使用“阻塞赋值”和“非阻塞赋值”。#6:不要在两个或两个以上always块里面对同一个变量进行赋值。#7:使用$stro...

2018-04-09 20:49:16 745

原创 如何解决ISE工程移植后,仿真时提示modelsim路径不对或者版本不对问题

     在将别人的ISE工程文件直接拷过来,在自己的ISE上运行并调用modelsim仿真时,有时会提示Library directory的问题。这时需要去检查你拷过来的工程文件里是不是没有modelsim.ini文件,如果没有,你需要找一个之前在自己ISE上建立并经过仿真的工程文件,在里面找到modelsim.ini文件,直接copy到你从别人拷过来的工程文件夹下,这样一般就不会提示LIbra...

2018-03-19 17:20:42 2579

2018年研究生数学建模真题

2018年研究生数学建模A~E一共五道题的真题及各题的附件,需要的自取

2018-09-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除