自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 数据结构与算法——阶段性总结

数据结构学习的总结学习总结学习路线:(B站视频+笔记)->(书籍+代码实现)->总结B站视频和笔记大约花了一个半月的时间,听老师讲课,对一些思想概念的理解要更容易些。可是,由于一直被老师引导,导致缺乏自己的思考。笔记是一种束之高阁的讲义,大可不必每个知识点都记,浪费时间与精力;但是,在看视频或者看书的时候做一些框架性的架构是合理的,对于重难点可以消化总结。看书加代码实现部分,看书是效率最高的,代码实现增强了实践能力。有待改进的地方是,未经思考的代码不一定要全部手动去敲。总体来说,数据结

2020-08-21 17:41:44 241

原创 数据结构与算法——十大排序算法(总结向)

文章目录0 十大排序算法(总结向)0.1 排序性能的衡量方法0.2 九大排序算法的性能分析1 起泡排序1.1 算法步骤1.2 动图演示1.3 代码实现2 选择排序2.1 算法步骤2.2 动图演示2.3 代码实现3 插入排序3.1 算法步骤3.2 动图演示3.3 代码实现4 希尔排序4.1 算法步骤4.2 动图演示4.3 代码实现5 归并排序5.1 算法步骤5.2 图片演示5.3 代码实现6 快速排序6.1 算法步骤6.2 图片演示6.3 代码实现7 堆排序7.1 算法步骤7.2 动图演示7.3 代码实现8

2020-08-21 15:16:28 762

原创 数据结构与算法——排序(C++)

九大排序算法在之前的向量、列表、散列表与优先级序列中,已经学习了前七种排序方法。在本博客中将学习剩余的快速排序与希尔排序。起泡排序归并排序插入排序选择排序桶排序基数排序堆排序快速排序希尔排序快速排序快速排序重点——轴点构造快速排序程序/* * test program on quickSort * author@Ripples * 20200807 */#include <iostream>#include <vector>// #incl

2020-08-09 20:02:03 348

原创 数据结构与算法——图及图的搜索算法(C++)

文章目录图的实现1. Graph类2 graphMatrix类3 测试图的实现1. Graph类Graph类定义图的基本信息(边与顶点)的相关内容,以及广度优先算法与深度优先算法等。#pragma once#include <assert.h>#include <limits.h> // INT_MAX#include "../dsa_queue_20200717/queue.h"#include "../dsa_stack_20200716/stack.h"n

2020-08-09 15:18:15 586

原创 数据结构与算法——串匹配(C++)

文章目录1 串匹配概述2 蛮力算法2.1 蛮力算法版本A2.2 蛮力算法版本B2.3 蛮力算法测试3 KMP算法3.1 KMP主算法3.2 构造next表3.3 KMP算法测试程序4 BM算法4.1 BM主算法4.2 坏字符策略与bc表4.3 好后缀策略与gs表4.4 BM算法测试5 Karp-Rabin算法6 Sunday算法参考材料1 串匹配概述字符串匹配有多种形式,包括模式检测( pattern detection),模式定位(pattern location),模式计数(pattern coun

2020-08-07 17:27:42 570

原创 数据结构与算法——优先级队列(C++)

1 优先级队列优先级队列是一种循优先级访问的不失高效的轻量级数据结构,优先级队列只需要维持偏序即可满足设计目标。优先级队列的实现依托于向量的“肉”和二叉树的“灵”,完全二叉堆与左式堆是优先级队列实现的两种方式。接口功能insert( T )按照优先级次序插入词条getMax( )取出优先级最高的词条delMax( )删除优先级最高的词条1.1 完全二叉堆堆序性:堆顶之外的每个节点都不高于其父节点。以下是完全二叉堆的实现程序。1.1.1 完全二叉堆的实现#

2020-08-05 14:43:46 403

原创 哈工大操作系统实验课——进程运行轨迹的跟踪与统计(lab 4)

I 实验题目本次实验包括如下内容:基于模板 process.c 编写多进程的样本程序,实现如下功能: + 所有子进程都并行运行,每个子进程的实际运行时间一般不超过 30 秒; + 父进程向标准输出打印所有子进程的 id,并在所有子进程都退出后才退出;在 Linux0.11 上实现进程运行轨迹的跟踪。 + 基本任务是在内核中维护一个日志文件 /var/process.log,把从操作系统启动到系统关机过程中所有进程的运行轨迹都记录在这一 log 文件中。在修改过的 0.11 上运行样本程序,通过分析

2020-08-05 12:00:29 2100

原创 数据结构与算法——散列表(C++)

1 散列表简介散列表是词典的一种形态,散列表通过“循值”访问数据,其动态特性与静态特性都十分优秀散列表具支持多个词条拥有相同的关键码散列表的关键是散列函数的设计,随机性强、规律性弱的散列函数最好散列表的支持的接口如下:操作接口功能描述get(key)若词典存在以key为关键码的词条,返回该词条的数据对象;否则返回NULLput(key, value)插入词条(key, value),并报告是否成功remove(key)若词典存在以key为关键码的词条,删除

2020-08-03 18:19:50 827

原创 数据结构与算法——高级搜索树(伸展树,B-树,红黑树)(C++)

1 伸展树类二叉搜索树的数据局部性体现在:(1)刚刚被访问过的节点,极有可能在不久后再次被访问到;(2)将被访问的下一节点,极有可能就处于之前被访问过的某个节点附近由于伸展树实现了“即用即前移”的伸展策略,伸展树非常符合于局部性原理。伸展树的伸展策略包括以下6种:zig-zig, zig-zag, zag-zig, zag-zag, zag, zig。以下是伸展树基于继承BST实现的类/** head file of SPLAY TREE* author@Ripples* 20200728

2020-07-29 14:36:00 351 4

原创 数据结构与算法——二叉搜索树BST与自平衡二叉搜索树AVL(C++)

1 二叉搜索树(BST)1.1 二叉搜索树的优点树的结构使得二分查找算法如鱼得水,使用树进行查找、删除和插入等操作综合了列表与向量的优点,在动态与静态之间达到了一个平衡。其中,树搜索的时间复杂度与树高直接相关,树越高,时间复杂度越大。本文讲述二叉搜索树的基本原型以及保证树平衡的自平衡二叉搜索树的原理。首先,介绍二叉搜索树的基本原型。二叉搜索树继承了二叉树类,扩写了查找,插入与删除等操作。#pragma once#include "../dsa_bintree_20200720/bintree.h

2020-07-27 16:28:36 405

原创 哈工大操作系统实验课——系统调用(lab3)

实验题目在linux-0.11上添加两个系统调用并测试(1)iam()原型为int iam(const char *name)将字符串参数name的内容拷贝到内核下保存下来,如果name长度小于等于23,返回拷贝的字符数。如果name的字符个数超过了23,返回-1,置errno为EINVAL。(2)whoami()原型为int whoami(char *name, unsigned int size);iam()保存的名字拷贝到name所指的地址空间。确保不对name越界访问。返回值是拷贝的字

2020-07-27 11:04:52 1765

原创 数据结构与算法——普通二叉树与真二叉树的重构实现(C++)

文章目录1.二叉树的重构2 普通二叉树的重构2.1 前序遍历+中序遍历2.2 后序遍历+中序遍历3 真二叉树的重构3.1 真二叉树3.2 先序遍历+后序遍历实现过程(1)观察(2)实现思路(3)代码实现(4)注意1.二叉树的重构二叉树的重构就是基于二叉树的遍历结果对二叉树进行复原的一个过程。常用的方法包括三种:对于普通二叉树的先序遍历+中序遍历方法,后序遍历+中序遍历方法与对于真二叉树的先序遍历+后序遍历方法。以下是基于数据结构与算法——二叉树的实现(C++)中的头文件进行二叉树的重构实现。2 普通

2020-07-23 21:21:46 603

原创 数据结构与算法——二叉树的实现(C++)

文章目录二叉树的实现1 BinNode类2 BinTree类3 程序测试4 总结二叉树的实现1 BinNode类BinNode作为二叉树的节点,其定义的规范性十分基础又十分重要。以下是"BinNode.h"中的程序内容。#pragma once#define BinNodePosi(T) BinNode<T>* //节点位置 #define stature(p) ((p) ? (p)->height: -1) //节点高度//BinNode状态与性质的判断#define

2020-07-23 16:57:17 1060 1

原创 数据结构与算法——栈的实现与三种应用实例(C++)

1 栈的实现栈可以依托向量或者列表的类来实现,此处采用继承列表类的方法来实现,列表类的详情见class List。#include <string.h>#include "../dsa_list_20200715/list.h"template <typename T> class Stack:public List<T> {public: void push ( T const& e ) { List<T>::insertAsLas

2020-07-17 19:55:42 1491

原创 数据结构与算法——列表的实现、排序与遍历(C++)

文章目录1 列表实现1.1 ListNode节点结构体1.2 List类1.3 主程序2 列表三大排序方法2.1 插入排序2.2 选择排序2.3 归并排序3 列表遍历4 总结1 列表实现1.1 ListNode节点结构体构建列表的前提是建造一个列表节点的结构体,这个结构体表示了列表的最小单元。ListNode结构体一般包括的成员有数据,前驱与后继。typedef int Rank; // 秩#define ListNodePosi(T) ListNode<T>* //列表节点位置t

2020-07-16 15:12:42 921

原创 数据结构与算法——起泡排序与归并排序(C++)

1 绪论初次基于向量实现起泡排序与归并排序,以为有所得,故记录下来。2 整体程序#include <iostream>#include <vector>using namespace std;bool bubble( int* A, int lo, int hi);void bubbleSort( int* A, int lo, int hi);void mergeSort ( int *A, int lo, int hi);void merge( int *&a

2020-07-14 22:03:31 285

原创 斯坦福CS106B——StanfordCPPLib在Qt Creator上的配置

1 引言斯坦福的CS106B课程是非常著名的一门计算机编程入门课程,也是斯坦福校内选修最多的一门课程,湾区的计算机氛围可见一斑。斯坦福大学对于C++语言建立了专属的一套库,以供校内师生使用,CS106B也基于此库。要学CS106B,必先配置StanfordCPPLib。2 搭建步骤2.1 安装Qt笔者之前用的是5.11版本的Qt,在编译斯坦福SPL库的时候显示Qt版本过低,之后重新下载安装了Qt5.12.0完成了编程环境的搭建。2.2 下载CS106B课程提供的模板访问网站CS106B,下载右

2020-07-14 14:55:19 4019 5

原创 数据结构与算法——有序向量的二分查找法(C++)

数据结构与算法——有序向量的二分查找法文章目录数据结构与算法——有序向量的二分查找法1. 程序概览2. 版本A——二分查找 & 斐波拉契查找2.1 二分查找版本A2.2 斐波拉契查找版本A3. 版本B——二分查找4. 版本C——二分查找5. 总结1. 程序概览#include <iostream>#include "Fib.h "using namespace std;int binSearch_A (int* A, int e, int lo, int hi);int

2020-07-13 16:03:27 286

原创 Windows下Qt+minGW+CMake+opencv配置--方法总结、文件分享与排错分享

文章目录1. 配置环境2.参考方法3. minGW32-make遇到的错误3.1. 解决策略3.2. 解决步骤3.3 源文件分享4. Qt配置4.1 将bin文件加入环境变量;4.2 在.pro文件中加入下面的代码,路径以自己的为准。4.3 写个小程序,编译运行。如果显示程序异常结束,可能是因为环境变量还未生效,重启就可以了。1. 配置环境Windows10;Qt 5.9.8;minGW(...

2020-04-29 01:08:26 3104 4

原创 数据结构与算法——递归函数的复杂度分析(C++)

0.复杂度度量Mathematics is more in need of good notations than of new theorems.与新定理相比,数学更需要好的符号。算法的复杂度存在于时间与空间两个维度,分别体现在随输入规模增加,消耗的时间的增加与占用计算机物理内存空间的增加。0.1 时间复杂度执行时间随规模增长的变化趋势可以表示为输入规模的一个函数,称为该算法的时间...

2020-04-17 20:24:31 823

空空如也

空空如也

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

TA关注的人

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