02 2022 档案
摘要:桥接:连接到的是真实网络,可以和同网段的其他网卡连接 NAT:连接到的是虚拟网络 主机模式:只能和本机网络通信,不会占用真实网段的地址通信
阅读全文
摘要:安装日志 /root/install.log:储存了安装在系统中的软件包及其版本信息 /root/install.log.syslog:存储了安装过程中·留下的时间记录 /root/anaconda-sk.cfg:以Kickstart配置文件的格式记录安装过程中设置的选项信息 软件包的选择 Desk
阅读全文
摘要:格式化又称逻辑格式化,它是指根据用户选定的文件系统(如FAT16,FAT32,NTFS,EXT2,EXT3,EXT4等),在磁盘的特定区域写入特定的数据,在分区中划分出一片用于存放文件分配表,目录表等用于文件管理的磁盘空间 分区设备文件名 设备文件名 /dev/hdal(IDE硬盘接口) /dev/
阅读全文
摘要:主分区:最多只能有4个 扩展分区: 最多只能有1个 主分区加入扩展分区最多只能有4个。 不能写入数据,只能包含逻辑分区 逻辑分区
阅读全文
摘要:1967年,美国贝尔实验室肯。汤姆森在DEC-7机器上开发了unix系统。 1971年,丹尼斯。里奇发明c语言;1973年,unlix系统的绝大部分源代码用c语言重写,这位提高unnix系统的可移植性打下基础。 unix主要发行版本 linux系统由芬兰大学生李纳斯和后来陆续加入的众多爱好者共同开发
阅读全文
摘要:思路: 1.创建棋盘chessBoard,是一个二维数组 2.将当前位置设置为已访问,然后根据当前位置,计算马还能走多少个位置,并放入到一个集合中ArrayList,最多有8个位置,每走一步,就使用step+1 3.遍历ArrayList中存放的所有位置,看看那个可以走得通,如果走得通就继续走,走不
阅读全文
摘要:迪杰斯特拉算法是典型的求最短路径算法,用于计算一个节点到其他节点的最短路径。它的特点是以起始点为中心到其他节点向外层层层扩展(广度优先搜索思想),直到扩展到终点为止。 算法过程 设置出发顶点v,顶点集合v{v1,v2...},V到各个顶点的距离集合Dis,Dis{d1,d2,..},Dis集合记录看
阅读全文
摘要:1.用来求加权连通图的最小生成树的算法 2.基本思路:按照权值从小到大的顺序选择n-1条边,并保证这n-1条边不构成回路 3.具体做法:首先构成一个只含n个顶点的森林(图), 然后依权值从小到大从联通网中选择边加入到森林(图)中, 并使森林(图)中不产生回路,直到森林(图)变成一个树为止。
阅读全文
摘要:最短最少的路劲链接7个点 package com.zou.Algorithm.prim;import java.util.Arrays;public class Prim { public static void main(String[] args) { char[]data=new char[]
阅读全文
摘要:1.给定一个带权的无向连通图,如何选取一棵树生成树,使树上所有边上权的总和为最小,这叫最小生成树 2.N个顶点,一定有N-1条边 3.包含全部顶点 4.N-1条边都在图中 5.举例说明如图 6.求最小生成路径算法主要的是普利姆算法和克鲁斯卡尔算法
阅读全文
摘要:package com.zou.greedy;import java.util.ArrayList;import java.util.HashMap;import java.util.HashSet;public class Greedy { public static void main(Stri
阅读全文
摘要:package com.zou.Algorithm.kmp;import java.util.Arrays;public class KmpAlgorithm { public static void main(String[] args) { String str1="BBC ABCDAB ABC
阅读全文
摘要:1.动态规划算法的核心思想是:将大问题划分成小问题进行解决,从而一步步获得最优解的处理方法 2.动态规划算法与分治算法类似,基本思想也是将待解决问题分解成若干个子问题,先求解子问题然后从这些子问题得到原问题的解 3.与分治算法不同的是,适合用于动态规划求解的问题,经分解得到子问题往往不是相互独立的。
阅读全文
摘要:分治算法是一种很重要的算法。字面上的解释是”分而治之“,就是把一个复杂的问题分解成两个或更多个相同或相似的问题,再把子问题分成更小的问题。。。直到最后的子问题可以直接求解阿,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),博立叶变换(快速博立叶变换) 分
阅读全文
摘要:1.二分查找只适合用于有序的数列中进行查找(比如数字和字母等),将数列排序后再进行查找 2.二分查找法的运行时间为对数时间O(2^n),即查找到所需的目标位置只需要log2^n布,假设从[0,99]的队列(100个数,即n=100)中寻找到目标数30,则需要步数为log2^100,及最多需要查找7次
阅读全文
摘要:广度优先遍历基本思想 图的广度优先类似于分层搜索的过程,需要一个队列来保持访问过的节点的顺序,以便于按这些顺序来访问这些节点的邻接节点 广度优先遍历算法步骤 1.访问初始节点v并标记节点v已访问。 2.节点v入队列 3.当队列为非空时,继续执行,否则算法结束。 4.出队列,取得队列节点u。 5.查找
阅读全文
摘要:遍历图的节点 一般有两种策略: 1.深度优先遍历 2.广度优先遍历 深度优先遍历的基本思想: 1.从初始访问节点出发,初始访问节点可能有多个邻接节点,深度优先遍历就是有可能有多个邻接节点,然后在以后访问的节点作为初始节点,访问它的初始邻接节点,访问它的第一个邻接节点,可以理解为:每次访问的是当前节点
阅读全文
摘要:线性表(链表)局限于一个直接前驱和一个直接后继的关系 树也只能有一个直接前驱也就是父节点 当我们需要表示多对多的关系时,就用到了图。 图是一种数据结构,其中可以具有以下零个或多个相邻元素。两个节点之间的链接称为边。节点也可以称为顶点 无向图 图的表示方式 图的表示方式有两种:二维数组表示(邻接矩阵)
阅读全文
摘要:2-3树是最简单的B树结构,具有以下特点 2-3树所有的叶子节点都在同一层(B树也要满足这点) 有两个子节点的叫做二节点,二节点要么没有节点,要么有两个节点 有三个子节点的叫做三节点,三节点要么没有节点,要么有三个节点 2-3树是由二节点和三节点构成的树 myslq经常用,某种类型的索引是基于B树或
阅读全文
摘要:二叉树的劣势 1.需要加载到内存,如果节点少没什么,但是如果节点很多比如1亿 2.构建二叉树时,需要进行多次i/o操作(海量数据存在数据库或文件中),节点海量,构建二叉树时,速度有影响 3.节点海量,也会造成二叉树的高度很大,会降低操作速度 多叉树 1.在二叉树中,每个节点有数据项,最多有两个节点。
阅读全文
摘要:单旋转: 左旋转 当rightHeight-leftHeight()>1成立,此时不是avl树 进行左旋转 右旋转 双旋转: 当符号单旋转没有转成 1.如果它的左子树的右子树高度大于它的左子树高度, 2.先对当前这个节点的左子树进行左旋转 3.再对当前节点进行右旋转的操作即可
阅读全文
摘要:1.平衡二叉树也叫平衡二叉搜索树又被称为AVL树,可以保证查询效率较高 2.具有以下特点:它是一棵空树或它的左右两颗子树的高度差的绝对值不超过1,并且左右两个子树都是一颗平衡二叉树。平衡二叉树的常用实现方法有红黑树,AVL,替罪羊树,Treap,伸展树等 3.举例
阅读全文
摘要:二叉排序树:BST,对于二叉排序树的任何一个非叶子节点,要求最子节点的值比当前节点的值小,右子节点比当前节点的值大 特别说明:如果,如果有相同的值,可以将该节点放左子节点或右子节点 比如针对前面的数据(7,3,10,12,5,1,9)
阅读全文
摘要:1.赫夫曼编码也翻译为哈夫曼编码,又称霍夫曼编码,是一种编码方式,属于一种程序算法 2.赫夫曼编码是赫夫曼树在电讯通信中经典的应用之一 3.赫夫曼码广泛地用于数据文件压缩。其压缩率通常在20%~90%之间 4.赫夫曼编码是可变字长编码的一种。称为最佳前缀编码。
阅读全文
摘要:构建步骤 1.从小到大进行排序,将每一个数据,每个数据都是一个节点,每个节点可以看成是一颗简单的二叉树 2.取出根节点权值的最小的两个棵树 3.组成一颗新的二叉树,该新的二叉树的根节点的权值是前面两棵树根节点权值的和 4.再将这颗新的二叉树,以根节点的权值大小再次排序,不断重复1234的步骤,直到数
阅读全文
摘要:1.给定n个权值作为叶子节点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为赫夫曼树 2.赫夫曼树是带权路径长度最短的树,权值较大的节点里根较近 3.树的带权路径长度:树的带权路径长度规定为所有叶子节点的带权路径长度之和,记为WPL,权值越大的节点离根节点越近的二叉
阅读全文
摘要:堆排序基本介绍 1.堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn), 它也是不稳定排序 2.对是具有以下性质的完全二叉树:每个节点的值都大于或等于其他左右孩子结点的值,称为大顶堆, 注意:没有要求节点的左右孩子的值的大小关系
阅读全文
摘要:n个节点的二叉链表中含有n+1个空指针域。 利用二叉链表中的空指针域,存放该节点在某种遍历次序下的前驱和后继节点的指针称为线索。 这种加上了线索的二叉链表称为线索链表,相应的二叉树称为线索二叉树。 根据线索性质不同,线索二叉树可分为前序线索二叉树,中序线索二叉树和后续线索二叉树三种。 一个节点的前一
阅读全文
摘要:基本说明 从数据存储来看,数组存储方式和树的存储方式可以相互转换,即数组可以转换成树,树也可以转换数组 顺序存储二叉树的特点 1.顺序存储二叉树只考虑完全二叉树 2.第n个元素的左节点为2*n+1 3.第n个元素的右节点为2*n+2 4.第n个节点的父节点为(n-1)/2 5.n:表示二叉树中的第几
阅读全文
摘要:public class BinaryTreeDome { public static void main(String[] args) { BinaryTree binaryTree = new BinaryTree(); //创建节点 HeroNode R1 = new HeroNode(1,"
阅读全文
摘要:1.创建一棵二叉树 2.前序遍历(父左右) 输出当前节点(初始化的时候是root节点) 如果左节点不为空,则递归继续前序遍历 如果右节点不为空,则递归继续前序遍历 3.中序遍历(左父右) 如果左节点不为空,则递归继续前序遍历 输出当前节点(初始化的时候是root节点) 如果右节点不为空,则递归继续前
阅读全文
摘要:数的常用术语 1.节点 2.根节点 3.父节点 4.字节点 5.叶子节点(没有子节点) 6.节点的权(节点值) 7.路径(从root节点找到该节点的路径) 8.层 9.子树 10.树的高度(最大层数) 11.森林:多棵子树构成森林 二叉的概念 1.树有很多种,每种节点最多只能有两个子节点的一种形式称
阅读全文
摘要:1.数组存储的分析 优点:通过下标方式访问元素,速度快。对于有序数组,还可以使用二分查找提高检索效率 缺点:如果要检索具体某个值,或者插入值会整体移动,效率较低 ArrayList底层维护的是数组Object[],采用数组扩容:每次底层都需要创建新数组,无参构造器创建的对象初始化容量为0,如果使用指
阅读全文
摘要:前提:有序数组 数组arr={1,2,3,...100} 假设查找1,使用二分查找的话,我们需要多少次递归,才能找到1 使用插值查找算法 int mid=left+(right-left)*(findVal-arr[left])/(arr[right]-arr[left]) //left和right
阅读全文
摘要:前提:必须是有序数组 思路:首先确定该数组的中间的下标 mid=(left+right)/2 然后让需要查找的数findVal和arr(mid)比较,若你的数组是从小到大 findVal>arr[mid],说明你要找到的数在mid的右边,因此需要递归的向右查询 findVal<arr[mid],说明
阅读全文
摘要:package com.zou.search;//线性查找public class SeqSearch { public static void main(String[] args) { int arr[]={1,9,11,-1,34,89};//没有顺序的数组 int index=seqSear
阅读全文
摘要:稳定:如果a原本在b面前,而a=b,排序后a仍在b前面 不稳定:如果a原本在b前面,a=b,排序后a可能出现在b后面 内排序:所有排序操作都有内存中完成 外排序:由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行 时间复杂度:一个算法执行所消耗的时间 空间复杂度:运行完一个程
阅读全文
摘要:基数排序又称桶排序,属于分配式排序,通过简直各个位的值,将要排序的元素分配到某些同种达到排序的效果 基数排序是属于稳定性的排序,基数排序法的是效率高的稳定性排序法 基数排序是桶排序的扩展 基数排序的实现:将整数按位数切割不同的数字,然后按不同的数字,然后按每位数进行比较 基本思想:将所有带比较数值统
阅读全文
摘要:快速排序是一种对冒泡排序的一种改进。基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都要比另一部分的数据要小,然后再按此方法对这两部分的数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
阅读全文
摘要:思想: 希尔排序把记录按下标的一定增量分组,对每组使用直接排序算法排序; 随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止 //希尔交换排序public class ShellSort { public static void main(String[]
阅读全文
摘要:插入排序的思想; 把n个待排序的元素看成为一个有序表和无序数表,开始有序表中方只包含一个元素。无序表中包含n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序依次与有序表的排序码进行比较,将他插入到有序表中的适当位置使之成为新的有序表 package com.zou.sort;impor
阅读全文
摘要:思路分析 图解:从小到大 package com.zou.sort;import java.util.Arrays;public class SelectSort { public static void main(String[] args) { int []arr={101,34,119,1};
阅读全文
摘要:public class BubbleSort { public static void main(String[] args) { //测试冒泡的时间复杂度O(n^2)// int arr[]={3,9,-1,10,20};// System.out.println("排序前");// Syste
阅读全文
摘要:优化: 因为排序的过程中,各元素不断接近自己的位置,如果一趟比较下来没有进行交换,就说明序列有序,因为要在排序过程中设置一个flag标志判断元素是否进行交换,从而减少不必要的比较。 import java.util.Arrays;public class BubbleSort { public st
阅读全文
摘要:算法的时间复杂度 度量一个程序(算法)执行的两种方法 1.事后统计的方法 这种方法可行,但有两个问题:一是要想对设计的算法的运行性能进行评测,需要实际运行该程序:二是所的时间的统计量依赖于计算机的硬件,软件的环境因素,这种方式,要在同一台计算机的相同状态下运行,才能比较那个算方快 2.事前估算的方法
阅读全文
摘要:package com.zou.recursion;public class RecursionTest { public static void main(String[] args) { test(4); System.out.println(factorial(6)); } public st
阅读全文