- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 左神算法笔记07
左神算法笔记07二叉树基本算法二叉树定义二叉树的遍历方式先序、中序、后序遍历递归方法非递归方法按层遍历实际应用1:获取二叉树的最大层宽度用hash表帮助记录行的方法不用hash表存储行信息二叉树的序列化和反序列化序列化反序列化 二叉树基本算法 二叉树定义 只有两个子节点的树形结构 class Node { int value; Node left; Node right; } 二叉树的遍历方式 先序、中序、后序遍历 递归方法 都属于递归序的方法,每个节点都在这个递归过程中遍历了三遍,先序遍历在第一次
2021-01-07 19:19:20
333
1
原创 左神算法笔记06
左神算法笔记06链表专题快慢指针给一个链表头节点,要求长度为奇数返回中点,偶数返回上中点变式回文链表分析代码链表荷兰旗问题分析代码复制链表问题分析链表相交问题分析判断是否有环代码第一种情况:两链无环第三种情况主调函数 链表专题 快慢指针 给一个链表头节点,要求长度为奇数返回中点,偶数返回上中点 让一个指针(慢指针)每次移动1个节点,另一个指针(快指针)每次移动2个节点,当快指针移到尾部时,慢指针差不多在中点附近,再根据题目进行具体的调整。 public class Node { public int va
2020-12-18 00:17:45
416
原创 左神算法笔记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
327
原创 左神算法笔记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
261
原创 左神算法笔记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
207
原创 左神算法笔记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
312
2
原创 左神算法笔记01
左神算法笔记01时间复杂度简单定义冒泡排序的例子对数器异或工具定义交换两个数的方法有一组数,只有一个数出现奇数次,其它数出现偶数次,找到这个数有一组数,有两个不相同的数出现奇数次,其它数出现偶数次,找到这两个数一些其它的位运算符的操作 时间复杂度 简单定义 简单理解为: 将一个算法的所有操作拆成基本操作(常数时间完成的操作)后,计算出操作次数和操作时间(可视为1)的乘积,即操作次数之和。在考虑最差情况时用O( )来表示时间复杂度,取最高项来表示。如O(N),O(logN)。 冒泡排序的例子 对N个数进行排列
2020-12-11 23:37:45
391
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
326
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅