08 2019 档案
摘要:红黑树是每个节点都带有颜色属性的二叉查找树,颜色为 红色 或 黑色。在二叉查找树强制一般要求以外,对于任何有效的红黑树我们增加了如下的额外要求: 节点是红色或黑色。 根是黑色。 所有叶子都是黑色(叶子是NIL节点)。 每个红色节点必须有两个黑色的子节点。(从每个叶子到根的所有路径上不能有两个连续的红
阅读全文
摘要:一、& 按位与运算符 5 & 3 = 1 5转换为二进制:0000 0000 0000 0000 0000 0000 0000 0101 3转换为二进制:0000 0000 0000 0000 0000 0000 0000 0011 规则:对应的两个二进制位都为1时,结果位就为1,其他情况都为0。
阅读全文
摘要:散列表(Hash table,也叫哈希表),是根据键(Key)而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做散列函数,存放记录的数组称做散列表。 散列函数的规则是:通过某种转换关系,使关键字
阅读全文
摘要:分块查找又称索引顺序查找,它是顺序查找的一种改进方法。 算法流程: 先选取各块中的最大关键字构成一个索引表; 查找分两个部分:先对索引表进行二分查找或顺序查找,以确定待查记录在哪一块中;然后,在已确定的块中用顺序法进行查找。 注:算法的思想是将n个数据元素"按块有序"划分为m块(m ≤ n)。每一块
阅读全文
摘要:二叉查找树(英语:Binary Search Tree),也称为二叉搜索树、有序二叉树(ordered binary tree)或排序二叉树(sorted binary tree),是指一棵空树或者具有下列性质的二叉树: 若任意节点的左子树不空,则左子树上所有节点的key值均小于它的根节点的值; 若
阅读全文
摘要:斐波那契搜索技术是一种使用分而治之算法搜索已排序数组的方法,该算法借助斐波纳契数来缩小可能的位置。与二元搜索相比,排序数组被分成两个大小相等的部分,其中一个进一步检查,斐波那契搜索将数组分成两个部分,其大小为连续的斐波纳契数。平均而言,这导致执行的比较增加了大约4%,但它的优点是只需要加法和减法来计
阅读全文
摘要:插值搜索法(Interpolation search)是利用插值公式来计算猜测搜索键值的位置。搜索方式与二分搜索相同 插值公式: 插值 = (设算数 - 最小数) / (最大数 - 最小数) 搜索键值 = left + parseInt( ( key - data[ left ] ) / ( d
阅读全文
摘要:二分搜索(英语:binary search),也称折半搜索(英语:half-interval search)、对数搜索(英语:logarithmic search),是一种在有序数组中查找某一特定元素的搜索算法。 搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一
阅读全文
摘要:线性搜索或顺序搜索是一种寻找某一特定值的搜索算法,指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。是最简单的一种搜索算法。 假设一个数组中有n个元素,最好的情况就是要寻找的特定值就是数组里的第一个元素,这样仅需要1次比较就可以。而最坏的情况是要寻找的特定值不在这个数组或者是数组里的
阅读全文
摘要:堆排序(英语:Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆积的性质:子节点的键值总是小于(或者大于)它的父节点。 堆是通过一维数组来实现的。在数组起始位置为0(根节点)的情形中: 父节点i的左子节点在位置(2i+1) 父节点i的右子节点在位
阅读全文
摘要:希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。希尔排序是非稳定排序算法。 希尔排序是基于插入排序的以下两点性质而提出改进方法的: 插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率 但插入排序一般来说是低效的,因为插入排序每次只能将数据移动一位 步长的选择是
阅读全文
摘要:插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素
阅读全文
摘要:归并排序(英语:Merge sort,或mergesort),是创建在归并操作上的一种有效的排序算法,效率为 O(n·log n)。和快速排序一样,该算法是采用分而治之(Divide and Conquer)的思想,也是一个非常典型的应用,且各层分治递归可以同时进行。 采用分治法: 分割:递归地把当
阅读全文
摘要:快速排序(英语:Quicksort),又称划分交换排序(partition-exchange sort),简称快排,一种排序算法,使用了分治思想来进行数组排序,数组划分为两个子数组A[p, ..., q-1]和A[q+1, ..., r],A[p, ..., q-1]中的每一个元素都小于A[q],A
阅读全文
摘要:选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小元素(这里只考虑升序),存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小元素,然后准确放到已排序序列中(数组前面)。因此,这个算法主要维护数组中两个子数组,一个是已排序的子数
阅读全文
摘要:冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 (图片来源于
阅读全文
摘要:前置知识 SSL是90年代Netscape弄出来的一套东西,为的是解决HTTP协议明文传输数据的问题。后来SSL慢慢成了事实上的标准,于是IETF就把SSL标准化了,名字叫做TLS,TLS 1.0其实就是SSL 3.1。所以SSL和TLS经常被放在一起写成SSL/TLS,因为这两个名词在现在其实就是
阅读全文
摘要:一、TCP/IP简述 TCP/IP从字面异议看起来是指TCP和IP两种协议,实际上,它只是利用IP进行通信时必须用到的协议群的统称。具体的来说,IP或ICMP、TCP或UDP、Telnet或FTP、以及HTTP等都属于TCP/IP的协议。他们与TCP或IP的关系紧密,是互联网必不可少的组成部分。 T
阅读全文
摘要:一、简述 Spring的启动过程就是IoC容器的启动过程,本质上就是创建和初始化Bean的工厂(BeanFactory),BeanFactory是整个SpringIoC的核心,Spring使用BeanFactory来实例化、配置和管理Bean。 二、SpringBoot的启动过程 在SpringBo
阅读全文
摘要:一、Spring IoC容器和bean简介 Spring Framework实现了控制反转(IoC)原理,IoC也称为依赖注入(DI)。 这是一个过程,通过这个过程,对象定义它们的依赖关系,即它们使用的其他对象,只能通过构造函数参数,工厂方法的参数,或者在构造或从工厂方法返回后在对象实例上设置的属性
阅读全文
摘要:一、前言 Spring 为基于 XML 构建的应用提供了一种扩展机制,用于定义和配置 Bean。 它允许使用者编写自定义的 XML bean 解析器,并将解析器本身以及最终定义的 Bean 集成到 Spring IOC 容器中。 二、自定义 XML Schema 扩展 为了搞懂 Spring 的 X
阅读全文

浙公网安备 33010602011771号