摘要: 数据结构的介绍 数据结构是一门研究算法的学科,只从有了编程语言也就有了数据结构.学好数据结构可以编写出更加漂亮,更加有效率的代码。 要学习好数据结构就要多多考虑如何将生活中遇到的问题,用程序去实现解决. 程序 = 数据结构 + 算法 数据结构和算法的关系 算法是程序的灵魂,为什么有些网站能够在高并发 阅读全文
posted @ 2019-07-18 21:32 virus丶舒 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 先看一个实际的需求 先看一个实际的需求 编写的五子棋程序中,有存盘退出和续上盘的功能。 分析问题: 分析问题: 因为该二维数组的很多值是默认值0, 因此记录了很多没有意义的数据.->稀疏数组 基本介绍 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。 稀疏数组的处理 阅读全文
posted @ 2019-07-18 21:30 virus丶舒 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 队列的一个使用场景 银行排队的案例: 队列介绍 队列是一个有序列表,可以用数组或是链表来实现。 遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出 示意图:(使用数组模拟队列示意图) 数组模拟队列 队列本身是有序列表,若使用数组的结构来存储队列的数据,则队列数组的声明如下其中 ma 阅读全文
posted @ 2019-07-18 21:29 virus丶舒 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 链表介绍 链表是有序的列表,但是它在内存中是存储如下 小结 链表是一个有序列表 链表的数据,在内存空间不一定是连续分布的. 单链表的介绍 单链表(带头结点) 逻辑结构示意图如下 // 所谓带头节点,就是链表的头有一个head节点, 该节点不存放具体的数据,只是为了操作方便而设计的这个节点. 单链表的 阅读全文
posted @ 2019-07-18 21:28 virus丶舒 阅读(301) 评论(0) 推荐(0) 编辑
摘要: 看一个实际需求 (出栈,入栈,先进后出) 请输入一个表达式 计算式:[7*2*2-5+1-5+3-3] 点击计算【如下图】 请问: 计算机底层是如何运算得到结果的?注意不是简单的把算式列出运算,因为我们看这个算式 7 * 2 * 2 - 5, 但是计算机怎么理解这个算式的(对计算机而言,它接收到的就 阅读全文
posted @ 2019-07-18 21:26 virus丶舒 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 看个实际应用场景 迷宫问题(回溯) 递归的概念 简单的说: 第归就是函数/方法自己调用自己,每次调用时传入不同的变量.第归有助于编程者解决复杂的问题,同时可以让代码变得简洁。 递归快速入门 我列举两个小案例,来帮助大家理解递归,递归在讲函数时已经讲过(当时讲的相对比较简单),这里在给大家回顾一下递归 阅读全文
posted @ 2019-07-18 21:25 virus丶舒 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 排序的介绍 排序是将一组数据,依指定的顺序进行排列的过程, 常见的排序: 冒泡排序 选择排序 插入排序 快速排序 归并排序 冒泡排序 冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从后向前(从下标较大的元素开始),依次比较 相邻元素的排序码,若发现逆序则交换,使排序码较小的元 阅读全文
posted @ 2019-07-18 21:23 virus丶舒 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 介绍: 在java中,我们常用的查找有两种: 1) 顺序(线性)查找 2) 二分查找 线性查找 有一个数列: {1,8, 10, 89, 1000, 1234} ,判断数列中是否包含此名称【顺序查找】要求: 如果找到了,就提示找到,并给出下标值。 object OrderSearch { def m 阅读全文
posted @ 2019-07-18 21:22 virus丶舒 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 看一个实际需求 google公司的一个上机题: 有一个公司,当有新的员工来报道时,要求将该员工的信息加入(id,性别,年龄,住址..),当输入该员工的id时,要求查找到该员工的所有信息. 要求: 不使用数据库,尽量节省内存,速度越快越好=>哈希表(散列) 哈希表的基本介绍 散列表(Hash tabl 阅读全文
posted @ 2019-07-18 21:20 virus丶舒 阅读(332) 评论(0) 推荐(0) 编辑
摘要: 先看一个需求 给你一个数组 (7, 3, 10, 12, 5, 1, 9),要求能够高效的完成对数组的查询和添加 二叉排序树介绍 二叉排序树:BST: (Binary Sort(Search) Tree), 对于二叉排序树的任何一个非叶子节点,要求左子节点的值比当前节点的值小,右子节点的值比当前节点 阅读全文
posted @ 2019-07-18 21:13 virus丶舒 阅读(732) 评论(0) 推荐(0) 编辑
摘要: 顺序存储二叉树的概念 基本说明 基本说明 从数据存储来看,数组存储方式和树的存储方式可以相互转换,即数组可以转换成树,树也可以转换成数组, 看右面的示意图。 顺序存储二叉树的概念 顺序存储二叉树的特点: 顺序存储二叉树的特点: 顺序二叉树通常只考虑完全二叉树 第n个元素的左子节点为 2 * n + 阅读全文
posted @ 2019-07-18 21:11 virus丶舒 阅读(1010) 评论(0) 推荐(0) 编辑
摘要: 为什么需要树这种数据结构 树存储方式的分析 能提高数据存储,读取的效率, 比如利用二叉排序树(Binary Sort Tree),既可以保证数据的检索速度,同时也可以保证数据的插入,删除,修改的速度。 二叉树的示意图 树的常用术语(结合示意图理解): 节点 根节点 父节点 子节点 叶子节点 (没有子 阅读全文
posted @ 2019-07-18 21:08 virus丶舒 阅读(328) 评论(0) 推荐(0) 编辑
摘要: 异步逻辑,在工程,集群中,实现 1 通信解耦 2 消峰限流 系统功能:秒杀,前台门户网站接收海量并发请求,只做消息的发送(生产端),发送到消息队列.由消费系统实现消费逻辑,将秒杀的用户/商品入库; 历史 业务系统与认证系统的认证(具有高效,权威的算法机构)通信 Rabbitmq 支持企业级别的消息队 阅读全文
posted @ 2019-07-18 07:45 virus丶舒 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 介绍: 中国企业级的,开源数据库中间件 特点: 1 高性能的读写分离 读写分离: 在数据库集群中,主节点负责写,从节点负责读数据,能够满足系统对读的要求和次数较高的特点;一个分片进行读写分离的设置,可以实现高性能的集群功能提供 2 100亿大表的并行计算; 分片个数,体现了整体数据量上限,100亿是 阅读全文
posted @ 2019-07-18 07:42 virus丶舒 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 分布式架构缺点 easymall的服务调用: 分布式框架的服务调用 系统不断根据业务逻辑进行扩充,添加任务,更新之后,系统结构变得非常复杂; 任何系统的强耦合,都会造成后期维护的困难;为了保证每一个服务的调用高可用 都会在调用端或者被调用端处理负载均衡的逻辑(nginx),负载均衡维护了一批服务的i 阅读全文
posted @ 2019-07-18 07:42 virus丶舒 阅读(187) 评论(0) 推荐(0) 编辑
摘要: SSM框架的缺点 1 配置繁琐;xml非常多 2 发布运行甚至,测试,必须依赖外界的web容器,无法自主启动运行; 造成整个开发流程的滞缓--效率不高; 尤其是微服务的概念产生,使得ssm框架显得格外笨重; 环境迫使spring框架升级 1.x-4.x版本的spring配置,搭建繁琐步骤少了非常多; 阅读全文
posted @ 2019-07-18 07:40 virus丶舒 阅读(310) 评论(0) 推荐(0) 编辑
摘要: HASH取余算法问题 节点数量越多时,迁移数据造成的未命中越高; hash一致性 介绍: 数学模型,经过代码的应用转化成的一种常见常用的计算算法; 数学模型,是基于散列算法完成(key不变,散列结果的整数不变);1997年美国麻省理工;大二学生研发的数学模型; 散列算法,将任意的内存对象数据转化成整 阅读全文
posted @ 2019-07-18 07:38 virus丶舒 阅读(137) 评论(0) 推荐(0) 编辑