- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 左神算法笔记07
左神算法笔记07二叉树基本算法二叉树定义二叉树的遍历方式先序、中序、后序遍历递归方法非递归方法按层遍历实际应用1:获取二叉树的最大层宽度用hash表帮助记录行的方法不用hash表存储行信息二叉树的序列化和反序列化序列化反序列化二叉树基本算法二叉树定义只有两个子节点的树形结构class Node{ int value; Node left; Node right;}二叉树的遍历方式先序、中序、后序遍历递归方法都属于递归序的方法,每个节点都在这个递归过程中遍历了三遍,先序遍历在第一次
2021-01-07 19:19:20 247 1
原创 左神算法笔记06
左神算法笔记06链表专题快慢指针给一个链表头节点,要求长度为奇数返回中点,偶数返回上中点变式回文链表分析代码链表荷兰旗问题分析代码复制链表问题分析链表相交问题分析判断是否有环代码第一种情况:两链无环第三种情况主调函数链表专题快慢指针给一个链表头节点,要求长度为奇数返回中点,偶数返回上中点让一个指针(慢指针)每次移动1个节点,另一个指针(快指针)每次移动2个节点,当快指针移到尾部时,慢指针差不多在中点附近,再根据题目进行具体的调整。public class Node{ public int va
2020-12-18 00:17:45 257
原创 左神算法笔记05
左神算法笔记05前缀树定义代码拓展桶排序定义计数排序描述实现基数排序描述实现排序总结前缀树定义输入字符串,按字符出现的顺序存到多叉树中。可以通过该树以O[str.lenth]的时间复杂度获取到添加了几次给定字符串str,或以str为前缀的字符串在该树中添加了几个,以及删除功能。代码public class Node{ private int pass; private int end; private Node[] nexts; public Node() { pass = 0;
2020-12-14 23:06:55 200
原创 左神算法笔记04
左神算法笔记04堆定义手撕堆堆的结构插入弹出最大值语言库自带的数据结构和自己写的数据结构对比比较器堆定义堆必须是一个完全二叉树,而且必须是最大堆或最小堆。所以完全二叉树不一定是堆。通过数组存储,脑补为二叉树的结构。可以知道数组下标为iii的节点的父节点下标为i−12\frac {i-1} 22i−1,左孩子节点下标为i∗2+1i*2+1i∗2+1,右孩子节点为i∗2+2i*2+2i∗2+2。手撕堆接下来实现的是最大堆堆的结构public class heap(){ private
2020-12-13 21:18:12 162
原创 左神算法笔记03
左神算法笔记03归并排序快速排序归并排序可以是函数递归,也可以是循环实现。将大的数组对半分为两个数组,每个数组排好序后再合并为大的数组。如果使用循环实现,要提防整形溢出应用:最小和问题,若数组的左边的一个数比右边的某一个数小,在返回结果加上自身的大小public static int process(int[] arr,int L,int R){ if(L == R) return 0; int mid = L + ((R - L) >> 1); return process
2020-12-13 10:39:55 129
原创 左神算法笔记02
左神算法笔记02链表结构栈、队列递归行为定义主方法哈希表在传参时注意点增删改查链表结构单向链表,双向链表,暂时没将具体算法栈、队列用链表实现和用数组实现递归行为定义在函数里调用自身,一般用来将大问题划分成多个小问题,简化问题。主方法T[N]=a∗T[Nb]+O[Nd]T[N] = a*T[\frac N b]+O[N^d] T[N]=a∗T[bN]+O[Nd]时间复杂度为:1:logab>Ndlog_ab > N^dlogab>Nd时,O[N]=O[logab]O
2020-12-11 23:37:57 200 2
原创 左神算法笔记01
左神算法笔记01时间复杂度简单定义冒泡排序的例子对数器异或工具定义交换两个数的方法有一组数,只有一个数出现奇数次,其它数出现偶数次,找到这个数有一组数,有两个不相同的数出现奇数次,其它数出现偶数次,找到这两个数一些其它的位运算符的操作时间复杂度简单定义简单理解为: 将一个算法的所有操作拆成基本操作(常数时间完成的操作)后,计算出操作次数和操作时间(可视为1)的乘积,即操作次数之和。在考虑最差情况时用O( )来表示时间复杂度,取最高项来表示。如O(N),O(logN)。冒泡排序的例子对N个数进行排列
2020-12-11 23:37:45 282 1
原创 计网项目二简单文件传输软件 socket接口部分
计网项目二简单文件传输软件 socket接口部分简介代码总结简介课程的团队项目,初学socket和单例模式,对socket的调用方式进行了封装(Windows系统下),对于socket的具体函数的了解较少,故没有充足的注释代码服务端代码如下Servre.h#pragma once#include <iostream>#include <cstdlib>#include <winsock2.h> #pragma comment(lib,"ws2_
2020-05-13 11:41:44 226
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人