自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 问答 (1)
  • 收藏
  • 关注

原创 Vue3-watch和watchEffect的比较

wacth和watchEffect都可以用来监听数据的改变。二者最大区别就是watch需要手动配置监听的数据,而watchEffect是自动收集需要监听的数据。大家想象成汽车自动挡和手动挡的区别。watch的使用watch监听基础数据上述代码是监听vue3中ref定义的基础数据类型,1s后会输出2,1。watch监听对象数据在vue3中,我们通常使用reactive来定义对象数据让其具备响应式。上述代码在1s后输出age:2和age:1。并且我们发现vue3的对象数据监听默认是深度监听,对象任意一个属

2022-07-10 22:51:15 602 1

原创 Vue3插槽-看不会你给我一拳

我们都清楚父组件可以给儿子组件传递数据,但是如何通过父组件给儿子组件传递内容?很明显,插槽就诞生了。4.1.1父组件给儿子插槽不传递内容Father.vueSon.vue输出结果:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Uprwxbsk-1657464588226)(https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/b84d3a1cc0eb41cf8e2832167939fc0a~tplv-k3u1fbpfcp-wa

2022-07-10 22:50:15 400

原创 Javascript面试超高频手写60题:1-10(持续更新中)

Javascript面试超高频手写60题

2022-07-10 22:49:27 317

原创 【无标题】Javascript面试超高频手写60题:11-20(持续更新中)

Javascript面试超高频手写60题

2022-07-10 22:48:32 182

原创 Javascript面试超高频手写60题:21-30(持续更新中)

前端面试手写必会60题

2022-07-10 22:41:45 295

原创 redis学习

一:redis介绍redis是非关系型数据库,它按照键值对的方式进行数据的存储。1.1:redis特点速度快支持数据持久化支持多种数据结构类型支持主从复制,分布式系统1.2:redis应用场景缓存系统排行榜计数器存储社交消息消息队列1.3:redis的数据类型字符串(string)哈希(Hash)列表(List)无序集合(Set)有序集合(Sort Set)1.4:下载安装redis第一步:点击下面地址进入github下载https://github

2021-04-22 10:31:27 272

原创 Shell命令

pwd:查看当前工作目录的完整路径man 命令名:此命令的功能介绍ls :列举当前目录下所有文件cd :进行文件层级访问,cd …/ 返回上一层目录mkdir 目录名:建立一个新目录touch 文件名:建立一个新文件mv 原来路径地址 新路径地址:将文件移动到新路径下。。。mv可以完成文件/目录的重命名rm 文件名:删除文件,不能删除目录rm -rf 目录名:删除目录,也就是文件夹cp 原来的文件 新地址下:文件的拷贝head -行数 文件名称 :显示文件的开头几行tail -行数 .

2021-04-18 23:36:59 123

原创 Git使用

Git和SVN对比git是分布式的代码管理模式,二SVN是集中式的代码管理模式git可以在本地进行代码管理,有网时再提交到git服务器上。svn是必须在有网的情况下,提交代码到svn服务器上git的分支灵活,自由切换,而svn的分支是笨拙的Git单人开发git结构图git仓库管理过程1.创建一个文件夹product2.设置product文件夹为git仓库//设置后,product自动创建.git文件夹,说明git仓库初始化成功git init3.配置个人信息git con

2021-04-18 23:33:58 91

原创 SQL语句学习

SQL查询基础一:sql的注释– 单行注释/**/ 多行注释二:sql命名规范按照行业标准,sql语句内置的词语都必须大写。表名首字母大写,字段名全部小写三:检索某个字段只出现一次使用DISTINCT关键字解决SELECT DISTINCT name FROM Mytable;四:从第N条数据开始取M条数据使用LIMIT 个数与OFFSET 个数配合使用找前面5行数据SELECT * FROM products LIMIT 5找出第5行后的10条数据

2021-04-03 10:32:56 96

原创 数据结构篇二十:字符串匹配

##字符串匹配这章节,我们会讲到几大典型的字符串匹配算法1. BF算法2. RK算法3. Sunday算法4. KMP算法BF算法BF算法是最最符合正常人逻辑思维的一种匹配模式,它就是采取穷举的方式,一步步进行主串与模式串的比较,匹配成功返回主串匹配开始的位置。接下来我们一起通过例子来看看这种让人喜欢用的算法吧,假设现在我们有主串abcdefg,待匹配的模式串efg,我们来找出模式串在主串出现的位置。准备工作表格1是主串在数组的存储格式,表格2是模式串在数组的存储格式,我们设置

2021-03-26 14:58:35 371

原创 数据结构篇十九:图的最短路径

图的最短路径迪杰斯特拉算法贝尔曼-福特算法弗洛伊德算法SPFA算法(中国西南交通大学段凡丁发明)最短路径问题分为两类,一大类是求一个顶点到其余各顶点的最短路径问题,另一大类是求各个顶点间最短路径问题。迪杰斯特拉迪杰斯特拉算法就是求解一个点到其余各点的最短路径算法,无向图带权图和有向带权图都适用。缺点是不适用权值为负数的图(后面会讲解原因)算法步骤初始的点为起点,我们用s集合存储已经确定最短路径的点的集合,那么s={v},起点加入。其余各个点到v点的权值存储在dis数组里,不是

2021-03-25 21:14:09 663

原创 数据结构篇十八:图的拓扑排序

拓扑排序拓扑排序是针对有向无环图定义的,此算法可以判断一个有向图是否存在回路。拓扑排序反应的是活动和工程的先后执行顺序。就好比我们CS专业的同学们,学习数据结构前我们得先离散数学这门课,学习算法,我们又得依托数据结构这门课。。。。拓扑排序主要是根据一个有向图写出活动或工程的序列问题,如何写出该有向无环图的序列?从有向图中选择一个 没有前驱(即入度为0)的顶点并输出,并删除该顶点和所有以它为起点的有向边。(其实就是删除该点和该点有关联的边)重复上面过程,直到所有点被输出(此时可证明无环)

2021-03-25 19:28:20 3888

原创 数据结构篇十七:图的最小生成树

最小生成树引论:研究最小生成树之前,我们还是先搞清楚什么是生成树。子图包含原图的所有顶点且边数等于顶点数减去一,并且要求子图不产生回路。总结起来就三点:1.包含图所有顶点。2.边个数等于顶点个数减去一。3.围成的新图不能产生回路(就是树了)概念是死板的,我来画图演示。根据概念,我们知道生成树的是不唯一的,我们列举出3种生成树。深度优先遍历![在这里插入图片描述](https://img-blog.csdnimg.cn/20210325192337181.jpg?x-oss-process=

2021-03-25 19:25:25 2089 1

原创 数据结构篇十六:图的深搜和广搜二

图的深搜和广搜前面一篇是利用深搜和广搜进行图的顶点的遍历,今天我们则是根据起点和终点位置进行路径的搜索。图的深搜算法问题:假设现在有一无向图,我现在要给你一个起始点和终点,如果可以走通请输出一条简单路径,不能则返回无路径。思考:我们可以考虑用深度搜索去求解此问题,我们假设用邻接矩阵存储这个图。我们可以设计一个数组去保存搜索过程的路径。注意点:算法的设计关键就是利用深搜递归可以回退参数的特点去求解,但是由于c语言的普通数组,传递的参数都是实参,无法进行回退,所以我们需要自定义伪数组去实现真正的形

2021-03-25 19:22:41 448

原创 数据结构篇十五:图和广搜和深搜一

图的深度和广搜优先遍历深度优先遍历深度优先搜索就好比走迷宫,当走到一个岔路口时,你随机选择一条路往下走,当发现走到前面无路可走时,回退到前一个岔路口重新选择另一条道路去重复上述过程。我们按照上图去走一遍深度优先搜索你就清楚了。随机选择一个起点,此处是1,有3个岔路口可选择我们随便选,就选数字2,然后继续判断2只有一个岔路口,只能向前走,走到了4,接下来发现4无路可走了,我们要回退一步到2,发现2也无路可走(每次都不包含走过的)继续回退到1上,发现1还有两个岔路口可走,我们选择3,继续向前,3发

2021-03-25 19:21:06 323

原创 数据结构篇十四:图和图的存储

图如何理解图?前面我们学习了线性表,链表,树等基础数据结构,图这种数据结构就是它们的综合利用。我们都知道,图有边和顶点组成,图的知识点比较多,我这里只是简单从数据结构简要分析。1.图的种类根据方向:无向图和有向图根据权值:无权图和有权图2.图的术语度:度的概念是针对图的顶点而言的,在无向图中,度表示某个顶点周围有几个顶点与其相连接,在有向图中,分为入度和出度的概念,入度表示该顶点周围多少个点指向自己,出度表示该顶点指向几个点带权图:就是图中边上面的数据,描述边的附加信息。联

2021-03-25 19:18:15 642

原创 数据结构篇十一:二叉查找树

二叉查找树1.什么是二叉查找树?二叉查找树是一种支持数据动态的插入,删除,查找的数据结构。2.二叉查找树的设计要求任意一个节点的左孩子必须小于当前节点任意一个节点的右孩子必须大于当前节点整个二叉树的数据不能重复如下图所示3.二叉排序树数据的查找既然二叉排序树每个节点的左孩子都小于当前节点,每个节点的右孩子都大于当前节点,所以我们可以根据这个特性,很容易查找数据。下面是查找步骤数据小于当前节点,向左走一步数据大于当前节点,向右走一步找到就退出,反之当走到叶子节点,还没找

2021-03-25 07:47:41 343

原创 数据结构篇十二:平衡二叉树

平衡二叉树平衡二叉树就是对二叉查找树的优化升级,它要求每个节点的左右子树的高度相差不大于11.平衡二叉树的查找平衡二叉树和二叉排序树的查找是一摸一样的。2.平衡二叉树的顺序输出平衡二叉树的中序遍历和二叉排序树一样,都是可以输出一个有序的数列。3.平衡二叉树的插入平衡二叉树在插入数据时,当发生了高度的不平衡时,会采取4种旋转操作:LL,RR,LR,RL(左左,右右,左右,右左)旋转,我们来一一分析这4种旋转方式。RR调整针对右孩子的右子树引起的不平衡调整策略右孩子c左上旋

2021-03-25 07:47:22 2372

原创 数据结构篇十三:B与B+树

B树与B+树B树(B-树)B树的中文名就是平衡树的意思,由于历史问题,B树被赋予了另一种叫法,B-树。为什么要产生B树这种奇怪的数据结构?其实这个是为了解决平衡二叉树的不足,平衡二叉树可以很好的维持查找效率在log(2^n),但是当数据十分庞大时,树的高度就绝对了磁盘的IO次数,我们知道IO的效率是比较低效的,我们尽可能去减少IO次数,所以就产生了B树这种高效率的查找树。我们先看看一颗B树吧.B树的特点每个节点由两部分组成,关键字项和指针项。每个节点的指针数目等于关键字数目加1.B树的阶

2021-03-25 07:46:13 641

原创 数据结构篇十:二叉树

二叉树对于树这块,基础部分都好理解,我仅仅整理树的难点知识我们先想一下,二叉树如何存储?顺序存储还是链式存储?我们尝试用这两种方式都去尝试存储树1.二叉树的顺序存储我们用一个数组去顺序存储二叉树的节点。从数组下标1开始存储是为了方便计算孩子位置每个节点的左孩子下标=2当前节点位置, 每个节点的右孩子下标=2当前节点位置+1对比上图,很容易看出啦。观察这个二叉树,数组很多空间没有被利用,所以顺序存储造成了巨大浪费。我们对比图1,发现,顺序存储适合存储完全二叉树。2.二叉树的链式存储

2021-03-24 18:15:46 564

原创 数据结构篇九:散列表

散列表1.什么是散列表?散列表就是通过一个映射函数,把每个数据映射为一个数组下标,按照下标存储起来,当我们访问这个数据时,只需要通过映射函数计算出下标,就可以找到这个数。2.散列表映射函数从散列表定义来看,散列表最重要的是设计映射函数,映射函数决定效率和减少地址冲突,常见的映射函数有下面的几个。。。直接定址法数学分析法除留取余法随机数法3.散列表的冲突问题不管我们设计的散列函数多牛逼。都无法避免数据映射冲突问题,冲突就是两个数据经过映射函数处理后得到的数据是一样的。这个时候不可能把它

2021-03-24 18:09:56 240

原创 数据结构篇八:二分查找

二分查找和拓展篇引言:如何在最短时间内,在有序数据中,找出目标数据?顺序查找?随机查找?不不不,那就是伟大的二分查找思想。今天我们来讨论二分查找的思想和其它4种拓展思维。最后还会介绍一种伟大的数据结构,也是用了二分查找的思想,它就是跳表。二分查找基于二分查找的其它思想跳表(redis)的简介1.二分查找例子:假设我们根据上图数据,已经排好序,找数据19的位置。如何用二分思想?1.我们先设置low,high,mid三个标记,low总是指向范围的下界,high指向上界,mid就是(low+

2021-03-24 18:07:45 180

原创 数据结构篇七:十大排序三

十大排序(3)今天我们学习10大排序的第三大类0(n)时间复杂度的排序计数排序桶排序基数排序1.计数排序本节的排序我首先给出排序的步骤,然后,我们根据步骤对数据进行一次完整的排序模拟,然后总结该排序算法的性能。算法步骤找出待排序数组arr1的最大值和最小值(确定数字范围)根据arr1数组值的范围确定辅助数组arr2对应范围内的下标所存储的值是0.逐个遍历arr1数组,将每次遍历到的数据data作为arr2数组的下标,给arr2数组对应下标data对应的值加上1。将arr2数

2021-03-24 18:05:15 197

原创 数据结构篇六:十大排序二

十大排序(2)今天先学习第二大类排序算法归并排序排序排序希尔排序堆排序1.归并排序分析:利用归并的思想将待排序数据,先划分成一个个小块,在两两合并数据,最后整体有序举例分析:假设我们有数据arr[i…k…j],其中的i就是下界,j就是上界,k就是中间位置,我们要让整个数组有序。只需要让数组arr[i…k]有序,arr[k…j]也有序,然后让两个数组合并,那么整体就有序了。//归并排序void sort_Merge(int *arr, int low, int high){

2021-03-24 16:55:07 131

原创 数据结构篇五:十大排序一

十大排序一我们把10大排序算法可以划分为三大类学习,今天先学习第一大类基础排序算法冒泡排序选择排序插入排序1.冒泡排序分析:冒泡排序每次都是从第一个元素开始往上冒泡,总是拿当前元素和下一个元素作比较。一趟结束后总能选出待排序中最大的元素1.当前元素小于等于下一个元素时,不交换,直接让下一个元素继续往上冒泡2.当前元素大于下一个元素时,与其交换值,继续网上冒泡。我们可以看动图分析我这两句话。void sort_Bubble(int* arr, int len){ int temp

2021-03-24 15:45:47 112

原创 数据结构篇四:队列

如何理解队列?队列这个概念非常好理解。你可以把它理解成排队买火车票,购票的人只能从队伍的最后面进入,并且每次出去的总是队头的那个。我们知道栈支持入栈和出栈的操作,和栈类似,队列支持入队和出队操作。最基本的队列有两大类,顺序队列和链式队列,顺序队列又可以细分为两类,普通顺序队列和循环队列接下来,就让我们一一分析这几大类队列吧。第一类:顺序队列原理:顺序队列是用数组模拟的,并且添加两个哨兵front和rear(大学课本称之为头指针和尾指针),front指向队列第一个元素,rear指向队列的最后一个元素

2021-03-24 15:41:25 355

原创 数据结构篇三:栈

栈的定义栈是一种操作受限制的线性表,它只允许在一端进行插入和删除。绝大多数编程语言都有堆栈模型,它是一种局部变量回收机制,它是如何工作?讲完今天的栈,我们来分析下这种机制。栈是有数组和一个栈顶指针构成(此处的指针不是c语言里的*p),该指针就是代表标记栈顶元素位置的。每次元素都只能从一端入栈,且只能从这一端出栈。很容易分析,它的入栈和出栈事件复杂度是0(1).下图是一个栈操作流程栈的代码还是比较容易实现的,控制好一端插入和删除就可以了。主流上,有两种栈,顺序栈和链式栈。大学课本的顺序栈是定义好空

2021-03-24 15:35:59 225

原创 数据结构篇二:链表

链表定义所谓链表,见名知意就是将数据链接起来,那数据肯定不是连续的排列在一起的,确实链表就是用指针将许多个内存块连接起来的数据结构。这一模块,我将描述链表的四大类结构,单链表,循环单链表,双链表,循环双链表。单链表我们先看下单链表的结构体/*定义单链表的节点*/struct Node{ struct Node* next; int data;};/*定义单链表总体*/struct List{ struct Node* head;//链表头节点 int size;//链表元素

2021-03-24 12:03:07 140

原创 数据结构篇一:数组

数据结构篇一:数组数组是一种线性的数据结构,它用一组连续的存储空间来存储数据相同的数据对于数组,相必大家都知道吧,不管是C,Java,Python,JavaScript,Go语言等等都有数组,由于JavaScript是一门弱语言,它设计数组可以存储不同数据类型。下面我们来分析下数组的增删改查操作和它的性能查找和修改数组中查找和替换都是通过下标直接操作的,时间复杂度都是0(1),提醒下,此处的查找是指给定一个数组下标,找出数组对应的元素。添加元素看上图,就很容易知道,数组在指定位置插入数据时

2021-03-24 11:55:42 144

原创 计算机考研刷题小程序

开发需求近些年了,考研逐渐成为了一场热门的竞争考试,特别是近几年考研报考人数激增,导致各大高校在招生人数相对稳定的情况下,竞争达到了白热化。我们都很清楚,考研中最容易的是政治,但是这门科目大家不会有太大差距的,所以考研最容易拉开分数的是数学和专业课,尤其是专业课,如果你能抓住重点,高分十分容易,且不会想数学那样需要高强度的复习。因此我开发了一款专门用于计算机考研的微信小程序,包含了数据结构,计算机网络,操作系统,c语言等类别科目的刷题小程序。题目收录于各大知名考研真题和经典习题小程序特色收录各大高效

2021-01-23 16:02:44 8738 11

原创 基于微信小程序的校园论坛系统开发过程

基于微信小程序的校园论坛系统开发过程微信小程序介绍首先,我说明下为什么会选择开发微信小程序,而不是去选择开发APP或者一个web网站的论坛系统,原因很简单–没人用。我开发好几个系统发现班级同学不经常用,这让我反思了好久,其实问题很明显,就是你增加了大家的负担,用户根本不原因去下载一个大家都不用的APP或者一个网站,所以我转变了策略,直接站在巨人的肩膀上开发(微信),微信小程序是内置在微信应用的,大家随手可以打开使用,用完就走,十分方便,所以我选择了微信小程序的开发。页面展示1。下面是小程序的首页,帖

2021-01-18 20:47:37 11100 20

空空如也

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

TA关注的人

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