1 LEverything

尚未进行身份认证

暂无相关简介

等级
TA的排名 38w+

字符串匹配问题——KMP算法实现

字符串匹配问题KMP算法实现字符串匹配字符串匹配问题,就是给定一个字符串str1,要找到str2中第一个与str1匹配的索引位置。这种问题使用暴力求解很容易实现,但是每次遇到不匹配的值时,只后移1个位置进行下次匹配,这样就会造成许多重复的操作。使用KMP算法可以求出每次遇到不匹配值时,后移的位数,这样就可以加快匹配的速度。KMP算法实现字符串匹配KMP算法的核心就是 部分匹配表:假设字符串str1为:“ABCDABC”其部分匹配表就是str1子串的前缀和后缀的最长公共元素的长度,字符串“hell

2020-05-26 13:13:55

动态规划——背包问题

动态规划——背包问题0-1背包问题完全背包问题0-1背包问题0-1背包问题就是给定一个背包的容量N,物品1,2…X:每个物品都有对应的import java.util.Arrays;public class Knapsack { public static void main(String[] args) { int[] val={1500,3000,2000}; // 物品价值 int[] w = {1,4,3}; //物品重量 int n

2020-05-25 19:02:34

图图的表示方式邻接矩阵(二维矩阵)邻接表图的创建图的深度优先遍历(DFS)图的广度优先遍历(BFS)图是一种数据结构,其节点可以有零个或多个相邻的元素,两个节点相连称为边。顶点(也就是节点)vertex边edge路径无向图:顶点之间的连接没有方向有向图:顶点之间的连接有方向带权图:边上带有权值,也叫网。图的表示方式邻接矩阵(二维矩阵)邻接矩阵为邻接表邻接表只关心存在的边,相较于邻接矩阵而言不关心不存在的边,因此没有空间的浪费,邻接表由数组和链表组成。邻接表为标号为0的节点

2020-05-24 18:09:13

堆排序

堆排序堆排序介绍堆排序思路堆排序介绍堆排序是利用堆这种数据结构设计的一种排序算法。堆是一种完全二叉树:大顶堆:每一个节点的值都大于或等于它的左右孩子节点的值;父节点=arr[i],左孩子节点=arr[2i+1],右孩子节点=arr[2i+2];小顶堆:每一个节点的值都小于或等于它的左右孩子节点的值。堆排序思路将无序序列构成一个堆,根据升序或降序选择大顶堆或者小顶堆。将堆顶元素与末尾元素交换,将最大或者最小元素沉到数组末端;重新调整除末尾的剩余元素,使其满足堆的结构再进行交换,循环,直

2020-05-23 22:52:59

计算机网络——传输层

传输层传输层协议TCP协议TCP连接TCP的连接释放TCP首部TCP流量控制UDP协议端口传输层协议传输层有两个协议,TCP(传输控制协议)和UDP(用户数据报协议)。为应用进程提供了逻辑通信。TCP协议需要将传输的文件分段,需要服务器和客户端建立会话(面向连接),实现可靠传输,有流量控制功能,全双工通信。每一条TCP连接只能是点对点的。例如QQ传文件,发送邮件用的就是TCP协议。传输层与应用层协议之间的关系:http = TCP + 80端口https = TCP+ 443端口RDP

2020-05-22 22:25:14

计算机网络——网络层

网络层网络层提供的服务网络层协议ARP协议ICMP协议IGMP协议IP协议网络层提供的服务负责在网络间选择路径转发数据包,基于数据包的IP地址转发,如果丢包不负责重发。数据包的顺序,可可靠传输由传输层提供。路由器工作在网络层,屏蔽了物理层和数据链路层的复杂性,数据包就在网络层间传输,变得简单。网络层地址决定了文件传输的起点和终点,而物理MAC地址只是决定数据的下一跳即下一个设备到哪里。网络层协议ARP协议ARP将IP地址通过广播 ,目标地址是FF-FF-FF-FF-FF-FF,解析目标IP地址

2020-05-21 21:35:11

数据链路层

数据链路层信道类型数据链路层解决的三个问题ppp协议标题信道类型点对点信道:一对一的通信广播信道:一对多,例如交换机连接多台计算机。数据链路层解决的三个问题1.封装成帧在一段数据的前后分别添加首部和尾部,就封装成了一个帧。用来确定帧的界限。2.透明传输如果要传送的数据中包含帧的开始字符或者结束字符时,要在前面插入转义字符“ESC”。接受端数据链路层在将数据传入网络层之前要删除转义字符。3.差错控制使用循环冗余检验CRC算法计算出帧检验序列FCS。计算FCS的方法不唯一,FCS要加在数

2020-05-21 14:41:22

二叉树的实现

树结构二叉树二叉树遍历前序遍历二叉树中序遍历二叉树后序遍历二叉树二叉树每个节点最多只能有两个子节点的一种树的形式,其子节点分为左节点和右节点。满二叉树:所有的叶子节点都在树的最后一层,节点数= 2n−12^n-12n−1,n为树的层。完全二叉树:所有的叶子节点都在最后一层或者倒数第二层,而且最后一层的叶子节点左连续,倒数第二层的叶子节点右连续。二叉树遍历前序遍历二叉树步骤:创建一棵二叉树前序遍历先输出当前节点如果左子节点不为空,则继续递归前序遍历;如果右子节点不为空,则继续中

2020-05-20 19:12:17

OSI参考模型

OSI参考模型OSI7层结构OSI参考模型通信过程OSI7层结构下层为上层提供服务,上层使用下层的服务。接口是服务的入口。水平方向同层的是协议。OSI参考模型通信过程上面4层端到端,下面3层点到点。应用层:所有能和用户交互并产生网络流量的程序。文件传输(FTP),电子邮件(SMTP),万维网(HTTP)。表示层:用于处理两个通信系统中交换信息的表示方法。1,数据格式变换。2,数据加密解密。3,数据压缩和回复。会话层:向表示层实体/用户进程,提供建立连接,并在连接上有序的传输数据。会话也是

2020-05-19 16:14:01

计算机网络的组成

计算机网络计算机网络组成组成部分工作方式功能组成计算机网络分类按分布范围分按使用者分按拓扑结构计算机网络组成计算机网络是互连的,自治的计算机集合。自治:无主从关系。组成部分硬件、软件、协议工作方式边缘部分:用户直接使用,C/S,P2P方式。核心部分:为边缘部分服务。功能组成通信子网:实现数据通信(各种传输介质、通信设备、相应的网络协议组成)资源子网:实现资源共享/数据处理(实现资源共享功能的设备和软件的集合)OSI模型中的上三层(应用层、表示层、会话层)属于资源子网;下三层(物理

2020-05-18 20:02:09

四种常见查找算法

查找算法常用查找算法线性查找二分查找插值查找斐波那契查找常用查找算法Java中常用的查找算法有四种:线性查找二分查找插值查找斐波那契(黄金分割)查找线性查找线性查找也就是顺序查找,它的思路很简单:将要查找的元素与数组中的元素依次比较,找到相同的就返回该索引。二分查找二分查找需要待查找的数组是有序的才可以使用该算法。其思路就是从待查找数组的中间位置取值与查找的数做比较,由于待查找数组有序,所以查找的数只有三种可能,查找的数等于数组中间位置的数;查找的数在数组左侧到中间位置的区间;

2020-05-12 14:57:27

排序算法(三)归并、基数排序

排序算法归并排序基数排序归并排序归并排序是一种利用分治递归思想排序的算法。这个算法的基本操作就是将两个有序表合并。因此在设计算法时要先将原数组划分到每组只有一个元素,这时就可以将每组都看成有序表,再将其依次合并,这里使用递归方法就能巧妙的解决。在做合并操作的时候需要三个指针 leftPos,rightPos,和tempIndex分别指向左有序表首位置,右有序表首位置,和零时数组首位置。import java.util.Arrays;public class MergeSort { pub

2020-05-11 17:49:59

排序算法(二)插入、希尔、快速排序

排序算法插入排序希尔排序快速排序插入排序**思路:**插入排序由N-1趟排序组成,N是数组长度,将希尔排序快速排序

2020-05-10 19:10:29

排序算法,冒泡、直接选择排序

排序算法分类排序内部排序外部排序插入排序直接插入排序希尔排序选择排序直接选择排序堆排序交换排序冒泡排序快速排序归并排序桶排序常用的排序算法都是内部排序,是指将数据加载到内部存储器中进行排序。外部排序是由于数据量过大,需要借助外部存储器进行排序。...

2020-05-09 18:36:36

递归方法

递归方法在执行一个递归方法时就创建一个新的受保护的独立空间(栈空间)。递归必须向退出递归的条件逼近,否则就会无限递归(StackOverflowError),形成死递归。谁调用方法,结果返回给谁。递归可以解决的问题数学问题:8皇后问题,汉诺塔问题,阶乘,迷宫等。各种算法中,如快速排序,归并排序,二分查找,分治算法等迷宫问题使用递归回溯方法,在一个迷宫中找出通路。路径会根据寻找路径...

2020-05-08 17:44:02

前中后缀表达式

前缀、中缀、后缀表达式前缀表达式前缀表达式的运算符位于操作数之前前缀表达式的计算方法:将前缀表达式按从右往左的顺序将数字压住栈中如遇到计算符,将栈顶两个数弹出进行相应的操作,得到的数压入栈中。(计算减法时用先弹出的数减去后弹出的数)最后得到的数就是表达式的计算值。中缀表达式中缀表达式就是平常手工计算时使用的表达式。中缀表达式的求值过程可以参考上一篇博客https://blog...

2020-05-06 21:40:53

栈结构

栈结构(stack)栈的特性栈是先入后出的数据结构,栈顶(top)是最后插入的数据和最先删除数据(变化端),出栈(pop),入栈(push)栈的应用场景1.计算表达式的值或者中缀表达式与后缀表达式的转换2.二叉树的遍历3.图的深度优先搜索。...

2020-04-26 02:33:39

约瑟夫环问题

约瑟夫环问题问题描述设编号为1,2…n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m的那个人出列,它的下一位又从1开始报数,数到m的人出列,依次类推直到所有人出列为止,由此产生一个出队编号序列。问题分析a.创建一个单向的环形链表,按编号插入节点,显示节点class Boy{ private int no; private Boy ...

2020-04-25 00:46:31
勋章 我的勋章
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。