10 2021 档案

摘要:设计模式七大原则 设计模式的目的 编写软件过程中,程序员面临着来自耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性等多方面的挑战,设计模式是为了让程序(软件),具有更好 代码重用性 (即:相同功能的代码,不用多次编写) 可读性 (即:编程规范性, 便于其他程序员的阅读和理解) 可扩展性 (即:当 阅读全文
posted @ 2021-10-29 22:23 无涯子wyz 阅读(34) 评论(0) 推荐(0) 编辑
摘要:普利姆算法 应用场景-修路问题 胜利乡有 7 个村庄(A, B, C, D, E, F, G) ,现在需要修路把 7 个村庄连通,各个 村庄的距离用边线表示(权) ,比如 A – B 距离 5 公里 问:如何修路保证各个村庄都能连通,并且总的修建公路 总里程最短? 思路: 只满足连通:将 10 条边 阅读全文
posted @ 2021-10-25 19:31 无涯子wyz 阅读(68) 评论(0) 推荐(0) 编辑
摘要:KMP算法 应用场景-字符串匹配问题 str1 = "硅硅谷 尚硅谷你尚硅 尚硅谷你尚硅谷你尚硅你好" str2 = "尚硅谷你尚硅你" 求:str2 在 str1 中是否存在,如果存在,返回第一次出现的位置,如果没有则返回 -1 暴力匹配 假设 str1 匹配到 i 位置,子串 str2 匹配到 阅读全文
posted @ 2021-10-23 19:42 无涯子wyz 阅读(82) 评论(0) 推荐(0) 编辑
摘要:堆排序 基本介绍 堆排序是利用 堆 这种 数据结构 而设计的一种排序算法,它是一种选择排序,最坏 、最好、平均时间复杂度均为 O(nlogn),它是不稳定排序。 堆是具有以下性质的完全二叉树: 大顶堆:每个节点的值都 大于或等于 其左右孩子节点的值 注:没有要求左右值的大小关系 小顶堆:每个节点的值 阅读全文
posted @ 2021-10-22 17:53 无涯子wyz 阅读(85) 评论(0) 推荐(0) 编辑
摘要:图 图的基本介绍 前面学过的 线性表 和 树: 线性表:局限于一个 直接前驱 和 一个 直接后继 的关系 树:只能有一个直接前驱(父节点) 当我们需要表示 多对多 的关系时,就需要用到图 比如:城市交通图。他就是一个图,对应程序中的图如下所示 图是一种 数据结构,其中节点可以具有 零个或多个相邻元素 阅读全文
posted @ 2021-10-21 16:38 无涯子wyz 阅读(99) 评论(0) 推荐(0) 编辑
摘要:多路查找树 二叉树与 B 树 二叉树存在的问题 二叉树的操作效率较高,但是也存在问题,如下图所示 当二叉树的节点较少时,不会出现什么问题。但是当节点过多时(海量,如 1 亿),就会出现如下的问题: 构建二叉树时,需要进行多次 I/O 操作 节点较多时,一般会存储在文件或则数据库中,进行多次 I/O 阅读全文
posted @ 2021-10-21 09:59 无涯子wyz 阅读(53) 评论(0) 推荐(0) 编辑
摘要:树的应用 二叉排序树 给你一个数列 7, 3, 10, 12, 5, 1, 9,要求能够高效的完成对数据的查询和添加。 在 为什么需要该数据结构 中讲解了数组、链表数据结构的优缺点,简单说: 数组访问快,增删慢 新增或移除时,需要整体移动数据 链表增删快,访问慢 只能从头开始遍历查找 那么利用 二叉 阅读全文
posted @ 2021-10-20 21:46 无涯子wyz 阅读(32) 评论(0) 推荐(0) 编辑
摘要:树结构实际应用 赫夫曼树 基本介绍 给定 n 个 权值 作为 n 个 叶子节点,构造一颗二叉树,若该树的 带权路径长度(WPL)达到最小,称这样的二叉树为 最优二叉树,也称为 哈夫曼树(Huffman Tree),还有的叫 霍夫曼树 赫夫曼树是带全路径长度最短的树,权值较大的节点离根节点较近 重要概 阅读全文
posted @ 2021-10-19 21:31 无涯子wyz 阅读(69) 评论(0) 推荐(0) 编辑
摘要:树结构基础部分 二叉树 为什么需要该数据结构 数组存储方式的分析 优点: 通过 下标 方式访问元素,速度快 对于 有序数组,还可以使用二分查找提高检索速度 缺点:如果要检索具体某个值或插入值(按一定顺序)会整体移动,效率较低,如下的示意图 链表存储方式的分析 优点:在一定程度上对数组存储方式有优化 阅读全文
posted @ 2021-10-16 15:49 无涯子wyz 阅读(38) 评论(0) 推荐(0) 编辑
摘要:哈希表 哈希表是一种数据结构,不是算法。 Google 上机题场景 有一个公司,当有新的员工来报道时,要求将该员工的信息加入 (id,性别,年龄,住址..), 当输入该员工的 id 时,要求查 找到该员工的 所有信息。 要求:不使用数据库、尽量节省内存、速度越快越好。 那么这道题,就可以使用哈希表 阅读全文
posted @ 2021-10-15 10:43 无涯子wyz 阅读(43) 评论(0) 推荐(0) 编辑
摘要:顺序/线性查找算法 基本思想:逐一比较数列中的值,找到则返回。 很简单,这里给一个需求: 有一个数列:{1,8, 10, 89, 1000, 1234},判断数列中是否包含此名称(顺序查找),要求:如果找到,则输出找到,并给出下标值 /** * 线性查找 * @param arr 要查找数据的集合 阅读全文
posted @ 2021-10-14 20:57 无涯子wyz 阅读(23) 评论(0) 推荐(0) 编辑
摘要:冒泡排序 冒泡排序(Bubble Sorting)的基本思想:通过对待排序序列 从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就像水底下的旗袍一样逐渐向上冒。 优化点:因为排序过程中,个元素不断接近自己的位置,如果一趟比较下来没有进行过交换 阅读全文
posted @ 2021-10-14 17:12 无涯子wyz 阅读(45) 评论(0) 推荐(0) 编辑
摘要:排序算法 排序也称 排序算法(Sort Algorithm),排序是将一组数据,依指定的顺序进行排列的过程。 排序算法的分类 分两类:内部排序、外部排序。 内部排序: 指将需要处理的所有数据,都加载到 内部存储器(内存) 中进行排序 外部排序: 数据量过大,无法全部加载到内存中,需要借助 **外部存 阅读全文
posted @ 2021-10-14 16:54 无涯子wyz 阅读(124) 评论(0) 推荐(0) 编辑
摘要:递归 递归入门 递归的应用场景 迷宫问题(回溯),上图说明: 红色的方块是围墙,是小球不能够走的 白色的方块是小球可以活动的范围 左上角是小球的起点,移动到右下角,就算走出了迷宫 那么在这个场景中,就用到了递归(Recursion) 递归的概念 简单说:递归就是方法自己调用自己,每次调用时 传入不同 阅读全文
posted @ 2021-10-12 14:31 无涯子wyz 阅读(45) 评论(0) 推荐(0) 编辑
摘要:在上一篇文章中,我们完整实现了计算器功能,但是还存在一些问题: 解决不支持多位数 不支持多位数的原因就在于:在扫描表达式时,没有考虑多位数的解析。那么思路是:当我们当前的数据是数字的时候,不能直接添加,而是保存到一个String中,需要判断下一位数据是不是字符或者没有下一位,如果是,将字符串转换成i 阅读全文
posted @ 2021-10-11 15:21 无涯子wyz 阅读(49) 评论(0) 推荐(0) 编辑
摘要:双向链表 单向链表的缺点 从前面的练习题,包括实现单向链表中会发现 单向链表 的以下问题: 查找方向 只能是单向 不能自我删除 需要靠辅助节点,要找到删除节点的上一个节点和删除节点,才能完成删除 而以上问题,双向链表: 可以双向查找 可以自我删除 双向链表的思路分析 双向链表的结构如上图所示,每个节 阅读全文
posted @ 2021-10-10 21:38 无涯子wyz 阅读(109) 评论(0) 推荐(0) 编辑
摘要:数据结构概述 在计算机科学中,数据结构(英语:data structure)是计算机中存储、组织数据的方式。数据结构是一种具有一定逻辑关系,在计算机中应用某种存储结构,并且封装了相应操作的数据元素集合。它包含三方面的内容,逻辑关系、存储关系及操作。 不同种类的数据结构适合于不同种类的应用,而部分甚至 阅读全文
posted @ 2021-10-09 22:42 无涯子wyz 阅读(120) 评论(0) 推荐(0) 编辑
摘要:正则表达式基本语法 正则表达式是对字符串执行模式匹配的技术 正则表达式的元字符分类: 限定符 选择匹配符 分组组合和反向引用符 特殊字符 字符匹配符 定位符 转义号\\ 在我们使用正则表达式去检索一些特殊的字符的时候,需要用到转义字符,否则检索不到我们匹配的结果,甚至会报错。在Java中\\两个代表 阅读全文
posted @ 2021-10-08 10:41 无涯子wyz 阅读(58) 评论(0) 推荐(0) 编辑
摘要:反射 反射机制允许程序在执行期借助于ReflectionAPI取得任何类的内部信息(属性,构造器,方法),并能操作的属性和方法,反射在设计模式和框架都会用到。 反射机制可以完成: 判断任意一个对象所属的类 在运行时构造任意一个对象 在运行时得到任意一个对象的成员变量和方法 在运行时调用任意一个对象的 阅读全文
posted @ 2021-10-07 21:44 无涯子wyz 阅读(32) 评论(0) 推荐(0) 编辑
摘要:网络概念 两台设备通过网络进行数据传输 网络通信:将数据通过网络从一台设备传输到另一台设备 java.net包下面提供了一系列接口和类供程序员使用 ip地址:用于唯一标识网络中每台设备 ip查看:ipconfig ip地址形式:点分十进制xxx.xx.xxx.xx 每一个十进制的范围是0-255 i 阅读全文
posted @ 2021-10-07 18:52 无涯子wyz 阅读(49) 评论(0) 推荐(0) 编辑
摘要:文件 文件就是保存数据的地方 文件流:文件在程序中是以流的形式来操作的 流:数据在数据源(文件)到程序(内存)之间经历的路径 输入流:数据从数据流到程序的路径 输出流:数据从程序流到数据源的路径。 输入和输出是以Java程序为参考点,从Java程序流出就是输出流,流入就是输入流 创建文件方法 new 阅读全文
posted @ 2021-10-06 19:38 无涯子wyz 阅读(538) 评论(0) 推荐(0) 编辑
摘要:线程的基本概念 线程的使用 创建线程的两种方式: 继承Thread类,重写run()方法 实现Runnable接口,重写run()方法 第一种情况继承Thread创建线程 public class Thread1 { public static void main(String[] args) th 阅读全文
posted @ 2021-10-05 22:12 无涯子wyz 阅读(29) 评论(0) 推荐(0) 编辑
摘要:泛型语法 泛型可以在编译的时候检查元素的类型,提高安全型;减少类型转换次数,提高效率 List<Dog> dogs = new ArrayList<>(); dogs.add(new Dog("小黄",1)); dogs.add(new Dog("小花",2)); dogs.add(new Dog( 阅读全文
posted @ 2021-10-05 15:11 无涯子wyz 阅读(34) 评论(0) 推荐(0) 编辑
摘要:集合的框架体系 Collection Collection实现子类可以存放多个元素,每个元素都可以是Object 有些Collection子类可以存放重复的元素,有些不可以存放重复的元素 有些实现子类是有序的,有些是无序的 Collection没有直接的实现子类,是通过子接口List、Set来实现的 阅读全文
posted @ 2021-10-05 10:08 无涯子wyz 阅读(67) 评论(0) 推荐(0) 编辑
摘要:包装类 针对八种基本数据类型相应的引用类型就是包装类 | 基本数据类型 | 包装类 | | | | | boolean | Boolean | | char | Character | | byte | Byte | | short | Short | | int | Integer | | lon 阅读全文
posted @ 2021-10-03 16:20 无涯子wyz 阅读(48) 评论(0) 推荐(0) 编辑
摘要:Java语言中,将程序执行中发生的不正常情况统称为“异常”,传统开发过程中的语法错误和逻辑错误不是异常。 执行过程中的异常事件可以分为两大类: Error错误,Java虚拟机无法处理的严重问题,比如JVM系统内存错误,栈溢出等 Exception异常,其它因编程错误或者偶然的外在因素导致的一般性问题 阅读全文
posted @ 2021-10-02 21:48 无涯子wyz 阅读(180) 评论(0) 推荐(0) 编辑
摘要:内部类 一个类的内部又完整的嵌套了另一个类结构,被嵌套的类我们称之为内部类。嵌套内部类的类我们称为外部类。内部类最大的特点是可以直接访问私有属性,并且可以体现类与类之间的包含关系 class Outer{//外部类 private int n1 = 100;//成员属性 public void m1 阅读全文
posted @ 2021-10-02 19:21 无涯子wyz 阅读(78) 评论(1) 推荐(0) 编辑
摘要:类变量和类方法 static变量是被所有对象共享的;static变量在类加载的时候就生成了 定义的格式: 访问修饰符 static 类型 变量名 = 值; 访问方式: 类名.变量名或者对象名.变量名 类变量的使用细节 类变量与普通变量的区别,类变量是所有对象共享的,普通变量是对象独享的 类变量可以通 阅读全文
posted @ 2021-10-01 20:44 无涯子wyz 阅读(49) 评论(0) 推荐(0) 编辑
摘要:访问修饰符 在Java中访问修饰符有四种,用于对类、成员变量,成员方法的访问范围进行控制。 public,公开的,对外公开。 protected,受保护的,同包和子类都可以访问 默认,同一个包可以访问 private,私有的,同一个类可以访问,对外不公开 访问修饰符 同类 同包 子类 不同包 pub 阅读全文
posted @ 2021-10-01 11:18 无涯子wyz 阅读(63) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示