09 2021 档案

摘要:2021/9/30 BTS:binary sorted tree 二叉排序树 一、二叉排序树的创建 因为是排好序的,根据值与节点比较,确定向左还是向右即可/ 二、二叉排序树的删除 三种情况: 1、删除叶子节点 2、删除只有一颗子树的节点 ​ 2.1如果删除节点为根节点,跟节点移动到左树的位置。如7, 阅读全文
posted @ 2021-09-29 22:10 能借我十块钱吗 阅读(127) 评论(0) 推荐(0)
摘要:2021/9/27 顺序存储二叉树 + 线索化二叉树的生成与遍历 1、顺序存储二叉树的概念 推导过程: 第n个节点的左子节点为2n,由于下标从0开始,所以需要加一。 对应数组的下标。 1.1、对顺序存储二叉树前中后序遍历 思路:对数组递归,利用上面的公式。 2、线索化二叉树 n个节点有2n个指针域, 阅读全文
posted @ 2021-09-29 12:39 能借我十块钱吗 阅读(70) 评论(0) 推荐(0)
摘要:2021/9/28 堆排序 + Huffman Tree 一、堆排序 堆是一棵顺序存储的完全二叉树。 堆只有大根堆与小根堆 分别代表最大值与最小值 堆排序: https://www.cnblogs.com/jingmoxukong/p/4303826.html 一切尽在不言中.... 二、Huffm 阅读全文
posted @ 2021-09-29 12:37 能借我十块钱吗 阅读(65) 评论(0) 推荐(0)
摘要:2021/9/26 Tree 这句话很经典: 数据结构:栈,队列,树,图都是逻辑结构,数据的物理结构只有数组和链表 树相比数组与链表,能够提高数据存储,读取的效率 1、二叉树概念以及名次解释: 树存储方式分析 二叉树术语介绍(之前科班学数据结构就有点迷糊) 二叉树概念: 2、前中后序遍历 前序:根左 阅读全文
posted @ 2021-09-27 09:29 能借我十块钱吗 阅读(34) 评论(0) 推荐(0)
摘要:2021/9/24 查找算法(4暴力,二分,插值,黄金) sequence search 暴力查找,遍历数组 binary search 二分查找,递归。中止的条件是left > right时 private static int binarySearch(int[]arr,int left,int 阅读全文
posted @ 2021-09-26 15:16 能借我十块钱吗 阅读(55) 评论(0) 推荐(0)
摘要:2021/9/25 哈希表 哈希表的简单介绍: 实际需求,Google上级题 当有新员工来报道时,要求把该员工的信息加入(id,age,sex...),当输入该员工id时,要求找到该员工的所有信息。 要求:不使用数据库,尽量节省内存,速度越快越好 ==> 哈希表 扩展:我们数据一般放数据库,但不要频 阅读全文
posted @ 2021-09-26 15:14 能借我十块钱吗 阅读(21) 评论(0) 推荐(0)
摘要:2021/9/22(归并排序) 今天修改之前自己弄出来的bug... 下午和晚上开始慢慢理解 “分治” 算法 就像一颗二叉树一样,先左再右再根 归并排序是稳定排序,它也是一种十分高效的排序,能利用完全二叉树特性的排序一般性能都不会太差。java中Arrays.sort()采用了一种名为TimSort 阅读全文
posted @ 2021-09-23 23:52 能借我十块钱吗 阅读(30) 评论(0) 推荐(0)
摘要:2021/9/23(桶排序+基数排序) 桶排序介绍: 基数排序(桶排序升级版介绍): 1)基数排序(radix sort)属于“分配式排序(distribution sort),又称“桶排序”(bucket sort),顾名思义,它是通过建值的各个位的值,将要分配的元素分配至某些桶中,达到排序的效果 阅读全文
posted @ 2021-09-23 23:49 能借我十块钱吗 阅读(46) 评论(0) 推荐(0)
摘要:目录0、算法概述0.1 算法分类0.2 算法复杂度0.3 相关概念1、冒泡排序(Bubble Sort)1.1 算法描述1.2 动图演示1.3 代码实现2、选择排序(Selection Sort)2.1 算法描述2.2 动图演示2.3 代码实现2.4 算法分析3、插入排序(Insertion Sor 阅读全文
posted @ 2021-09-23 23:44 能借我十块钱吗 阅读(754) 评论(0) 推荐(0)
摘要:插曲(测试代码执行时间) Math.random() 可以生成随机数 random实例的nextInt(), nextDouble() 也可以。 /** * 测试八万的数据 */ public static void costTime() { int[] arrays3 = new int[8000 阅读全文
posted @ 2021-09-23 13:51 能借我十块钱吗 阅读(92) 评论(0) 推荐(0)
摘要:图解排序算法(四)之归并排序 </h1> <div class="clear"></div> <div class="postBody"> <div id="cnblogs_post_body" class="blogpost-body blogpost-body-html"> 基本思想 归并排序( 阅读全文
posted @ 2021-09-22 19:54 能借我十块钱吗 阅读(51) 评论(0) 推荐(0)
摘要:2021/9/21(希尔排序 + 快速排序) 简单插入排序存在的问题: 当存在这样一个数组: Arr = {2,3,4,5,6,1} 当需要插入的数是较小的数时,这是需要移动次数非常多! 插入排序代码: /** * insertVal 是即将要进行插入的值 * index 是有序表中最后一个值的下标 阅读全文
posted @ 2021-09-22 09:23 能借我十块钱吗 阅读(40) 评论(0) 推荐(0)
摘要:2021/9/20 开始排序算法 排序的分类:常见的排序如右图 9大排序算法的时间复杂度 在做算法分析时,主要讨论的是时间复杂度。用户体验更注重程序执行的速度。 一些缓存产品(redis,memecache)和算法(基数排序)就是使用的空间换时间 今天完成了冒泡排序,选择排序,插入排序。 在gite 阅读全文
posted @ 2021-09-22 09:21 能借我十块钱吗 阅读(42) 评论(0) 推荐(0)
摘要:快排,面试最喜欢问的排序算法。这是运用分治法的一种排序算法。 快速排序,说白了就是给基准数据找其正确索引位置的过程. 快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists)。 原理: 如下图所示,假设最开始的基准数据为数组第一个元素 阅读全文
posted @ 2021-09-21 23:09 能借我十块钱吗 阅读(41) 评论(0) 推荐(0)
摘要:2019/9/16 (双链表+循环链表 + 单链表解决Joseph问题) 双链表 package LinkedList.doubleLinkedList; import LinkedList.MyLinkedList; import lombok.AllArgsConstructor; import 阅读全文
posted @ 2021-09-19 19:14 能借我十块钱吗 阅读(39) 评论(0) 推荐(0)
摘要:2021/9/17(栈实现+表达式求值) 栈的应用场景 子程序的调用,在跳往子程序之前,会讲下个指令的地址存到堆栈中,直到子程序执行完后再将地址取出,以便回到原来的程序。 处理递归调用:和子程序的调用类似,只是除了储存下一指令的地址外,也将参数,区域变量等数据存入堆栈中。 表达式的转换【中缀转后缀】 阅读全文
posted @ 2021-09-19 19:13 能借我十块钱吗 阅读(66) 评论(0) 推荐(0)
摘要:2021/9/18(中缀转后缀 + 递归) 第一次到南通市图书馆啦!开心 中缀转前缀: 中缀转后缀: 代码已经提交到了gitee /datastructrue/stack/convertpolandExpression 递归 栈在计算机中应用最广泛的是程序设计语言中的函数调用,特别是在递归程序中,子 阅读全文
posted @ 2021-09-19 19:12 能借我十块钱吗 阅读(62) 评论(0) 推荐(0)
摘要:2021/9/14 ~15(单链表) dizzy day 单链表习题 对于单链表的再度学习,我明白了引用的概念,变量在栈区,new 出来的对象在堆区。 变量可以操作内存中的数据。a = head. 指变量a指向head变量所在的内存区。 即a和head都指向了一块内存区。a和head = 其他值并不 阅读全文
posted @ 2021-09-16 18:36 能借我十块钱吗 阅读(53) 评论(0) 推荐(0)
摘要:2021/9/13 稀疏数组 数组与稀疏数组转换 二维数组转稀疏数组 遍历原始的二维数组,得到有效数据的个数sum 根据sum就可以创建稀疏数组sparse int[sum] [3] 将二维数组的有效数据存到稀疏数组 稀疏数组转二维数组 先读取稀疏数组的第一行数据,得到行列的信息,创建 chessA 阅读全文
posted @ 2021-09-16 18:35 能借我十块钱吗 阅读(43) 评论(0) 推荐(0)
摘要:2019/9/16 (双链表+循环链表 + 单链表解决Joseph问题) 学习视频来源:https://www.bilibili.com/video/BV1B4411H76f?p=29 双链表 package LinkedList.doubleLinkedList; import LinkedLis 阅读全文
posted @ 2021-09-16 18:34 能借我十块钱吗 阅读(28) 评论(0) 推荐(0)
摘要:大纲:线性结构常见的有:数组,队列,链表,栈洗漱 ​ 非线性结构常见:多维数组,广义表,树,图 Java中list接口就是代表线性表,线性表中常见的两种实现分别是ArrayList和LinkedList,其中LinkedList是一个双向链表,而ArrayList是动态数组来实现。 transien 阅读全文
posted @ 2021-09-12 23:31 能借我十块钱吗 阅读(53) 评论(0) 推荐(0)
摘要:2021/9/12 算法的时间复杂度与空间复杂度 一般可以从一个算法的时间复杂度与空间复杂度来评价算法的优劣。 时间复杂度:时间增长的趋势 ​ 通俗来讲就是计算机运行一个算法时,程序代码被执行的总次数 空间复杂度:内存空间增长的趋势 T(n) 表示时间。 常见的渐进时间复杂度有: style="zo 阅读全文
posted @ 2021-09-12 18:03 能借我十块钱吗 阅读(72) 评论(0) 推荐(0)
摘要:9.11 begin 数结(单向链表最佳实现) 常见面试题: 字符串模式匹配(KMP) 汉诺塔(分治) 八皇后(回溯) 马踏棋盘(图的深度优先+贪心算法) 课程目标:掌握本质,能达到在工作中灵活运用解决实际问题和优化程序。 程序 = 数据结构 + 算法 数据结构分类: 线性结构 非线性结构 Toda 阅读全文
posted @ 2021-09-11 23:40 能借我十块钱吗 阅读(58) 评论(1) 推荐(0)
摘要:2021/9/5 (代理模式) 安装了zsh的插件,高亮与命令补全。 Begin学习AOP,复习静态代理和动态代理: 动态代理:在程序的运行过程中,利用jdk的反射机制,创建代理类对象,并动态的指定要代理的目标类。 动态代理 底层就是反射 反射是一种解释性操作需要告诉虚拟机怎么怎么做 所以效率不算很 阅读全文
posted @ 2021-09-05 22:13 能借我十块钱吗 阅读(62) 评论(0) 推荐(0)
摘要:https://blog.csdn.net/qq_25280443/article/details/79036528 阅读全文
posted @ 2021-09-02 15:23 能借我十块钱吗 阅读(14) 评论(0) 推荐(0)