图文详解:数据结构与算法之二叉树遍历

上文介绍了二叉搜索树的性质,本文将继续介绍二叉树的遍历。 二叉搜索树的遍历 ...
数据结构 9月前 阅读 229

图文详解:数据结构与算法之二叉搜索树

树是一种非线性数据结构,其概念也不少。大家在初次接触树的时候,可能觉得它很难;之所产生这种感觉主要是由于树有一大堆陌生的概念、性质等内容。而当我真正的实现了二叉树再回过头来看它的相关概念和性质的时候,觉得原来它是如此的简单! 因此,建议在学习二叉树的时候:先对二叉树基本的概念、性质...
数据结构 9月前 阅读 235

图文详解:数据结构与算法之位图排序

问题描述 编程珠玑这本书给出的问题如下: 输入:一个至多包含n个非负整数的文件,每个数都小于n; 且这些整数都不重复;数据之间也不存在关联关系。 此处n取值10000000。  约束:①最多1MB的内存空间可用;②磁盘空间...
数据结构 9月前 阅读 232

图文详解:数据结构与算法之插入排序

直接插入排序介绍 直接插入排序(Straight Insertion Sort)的基本思想是:把n个待排序的元素看成为一个有序表和一个无序表。开始时有序表中只包含1个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,将它插入到有序表中的适当位置,使之成为新的...
数据结构 9月前 阅读 227

图文详解:数据结构与算法之选择排序

选择排序介绍 选择排序(Selection sort)是一种简单直观的排序算法。其基本思想是:首先在未排序的数列中找到最小(or最大)元素,然后将其存放到数列的起始位置;接着,再从剩余未排序的元素中继续寻找最小(or最大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序...
数据结构 9月前 阅读 217

图文详解:数据结构与算法之快速排序

快速排序介绍 快速排序(Quick Sort)使用分治法策略。它的基本思想是:选择一个基准数,通过一趟排序将要排序的数据分割成独立的两部分;其中一部分的所有数据都比另外一部分的所有数据都要小。然后,再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据...
数据结构 9月前 阅读 237

图文详解:数据结构与算法之冒泡排序

冒泡排序介绍 冒 泡排序一种简单的排序算法。它会遍历若干次要排序的数列,每次遍历时,它都会从前往后依次的比较相邻两个数的大小;如果前者比后者大,则交换它们的位置。 这样,一次遍历之后,最大的元素就在数列的末尾! 采用相同的方法再次遍历时,第二大的元素就被排列在最大元素之前。重复此操...
数据结构 9月前 阅读 261

Proxy代理详解:什么是cglib代理

由于静态代理和动态代理模式都是要求目标对象是实现一个接口的目标对象,但是有时候目标对象只是一个单独的对象,并没有实现任何的接口,这个时候就可以使用以目标对象子类的方式类实现代理,这种方法就叫做:Cglib代理 Cglib代理,也叫作子类代理,它是在内存中构建一个子类对象从而实现对目...
架构设计 10月前 阅读 335

Proxy代理详解:什么是java动态代理

动态代理有以下特点:1.代理对象,不需要实现接口2.代理对象的生成,是利用JDK的API,动态的在内存中构建代理对象(需要我们指定创建代理对象/目标对象实现的接口的类型)3.动态代理也叫做:JDK代理,接口代理 JDK中生成代理对象的API代理类所在包:java.lang.r...
架构设计 10月前 阅读 273

Proxy代理详解:什么是java静态代理

静态代理在使用时,需要定义接口或者父类,被代理对象与代理对象一起实现相同的接口或者是继承相同父类。下面举个案例来解释:模拟保存动作,定义一个保存动作的接口:UserDao.java,然后目标对象实现这个接口的方法UserDaoImpl.java,此时如果使用静态代理方式,就需要在代理对...
架构设计 10月前 阅读 255

什么是Java代理?为什么要使用代理?

代理(Proxy)是一种设计模式,提供了对目标对象的间接访问方式。 为什么要使用代理? 举例1:某大明星A每天忙于各种演唱会、商演。虽然每一场活动均是商人甲、乙、丙、丁等出资,但是大明星A从来没有时间和他们洽谈商演细节、价格,而这一切繁琐的事情,就交给他的经济人来接洽和处理。经...
架构设计 10月前 阅读 350