学习
TReeNoder
Hi~
展开
-
URLEncode 报错:Unhandled exception:java.io.UnsupportedEncodingException
需要try-catch,可以加上试一试:原创 2019-10-21 11:13:20 · 7408 阅读 · 0 评论 -
今天开始学Java 匈牙利算法
原博主地址:https://blog.csdn.net/dark_scope/article/details/8880547匈牙利算法是由匈牙利数学家Edmonds于1965年提出,因而得名。匈牙利算法是基于Hall定理中充分性证明的思想,它是部图匹配最常见的算法,该算法的核心就是寻找增广路径,它是一种用增广路径求二分图最大匹配的算法。-------等等,看得头大?那么请看下面的版本:通过数代人的...转载 2018-04-03 22:58:09 · 434 阅读 · 0 评论 -
今天开始学Java log2N的表示
在刷题过程中需要使用到log2N,但是java中只有log(double)N,log10等等函数,这个时候就要用到初中学到的知识了(反正我已经快忘得差不多了)首先要弄明白一个初中学到的公式log2N=logeN/loge2,logeN代表以e为底的N的对数,loge2代表以e为底的2的对数,这就是换底公式。在java中表示就是:log(N)/log(2)注意这个函数的参数必须是double类型的。...原创 2018-03-24 21:29:31 · 3003 阅读 · 0 评论 -
因特网的组成
从工作的方式上来看,因特网可以分为一下几个部分:1、边缘部分:主机组成(用户可以直接使用),这部分主要是供用户主机之间进行通信和资源共享;2、核心部分:这一部分主要是由网络和连接网络的路由器组成。为边缘部分提供服务。边缘部分:这部分通常被称为端系统。端系统之间的通信方式有两种:客户端/服务器,P2P。客户端/服务器:是指通信中涉及到的两个通信进程,客户-服务器方式所描述的进程之间服务与被服务的关系...原创 2018-03-12 23:00:15 · 3852 阅读 · 0 评论 -
当我们输入网址点击回车后会发生什么
首选要找到Http协议是基于Tcp/ip协议的,那么我们就需要一个到Tcp/ip层的API,就是socket。要建立socket连接(IP地址和端口号),就要对URL进行域名解析,我们本地主机配置网络会填写一个DNS,本机会把url发给这个DNS服务器,如果服务器找不到这个url对应的IP地址和端口号的话,就从上级发送,直到发送到根服务器得到结果。现在请求连接建立成功了,给web服务器发送请求,操...原创 2018-03-10 09:46:26 · 442 阅读 · 0 评论 -
今天开始学Java 二分查找算法实现
预防针:首先得是个有序的序列,然后从序列的一半开始比较,若指定元素大于mid,那么就在mid的右边进行查找;如果小于就在mid的左边进行查找;如果等于就返回mid。Java代码 public static int find(int[] a,int key) { int low = 0; int high = a.length-1; while(low <= high){ //这里一...原创 2018-03-10 08:45:56 · 160 阅读 · 0 评论 -
今天开始学Java 排序算法之堆排序
大顶堆用于升序排列:经过多次比较把最大的元素放到根结点(相当于找到序列里面的最大元素),然后再将这个最大元素放到叶结点,这个叶结点就固定不动了,继续比较其它结点,从剩下的结点里面供一个最大元素出来放到根结点,依次循环。public class InsertSort { public static void sort(int[] a){ //formulate the bigtoptree fo...原创 2018-03-09 23:06:58 · 128 阅读 · 0 评论 -
今天开始学Java 排序算法之归并排序
思路:它的最直观的想法是将两个有序子序列通过从左到右两两元素相互比较的排序的方法,那么如果使两个子序列有序呢,那就再将这两个子序列两两分,一直分下去的话最后就得到长度为1的各个子序列,这时就相当于每个子序列都是有序的了,最后按照之前的最直观的想法两两比较合并。甩上代码来:public static void sort(int[] a,int low,int mid,int high){ int[...原创 2018-03-09 22:42:47 · 102 阅读 · 0 评论 -
今天开始学Java 排序算法之简单选择排序
思路:开始假定第一个元素是最小元素,然后从剩下的元素中选一个最小(或者最大)的,与第一个元素交换位置。接着从第二个元素开始是最小元素,从剩下的元素中选一个最小(或者最大)的,与第二个元素交换位置。以此类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止。public static void sort(int[] a){ for(int i =0;i<a.length-...原创 2018-03-09 21:57:30 · 115 阅读 · 0 评论 -
今天开始学Java 排序算法之快速排序
思路:先选一个“标尺”, 用它把整个队列过一遍筛子, 以保证:其左边的元素都不大于它,其右边的元素都不小于它。排序问题就被分割为两个子区间。 再分别对子区间排序就可以了。不明白的话看代码:public class InsertSort { public static int sort(int[] a,int start,int end){ int base = a[end]; while(st...原创 2018-03-09 21:39:22 · 122 阅读 · 0 评论 -
今天开始学Java 排序算法之冒泡排序
思路:其实就是元素之间两两比较,第一趟排序后将最大的元素放到了末尾。然后再从头开始到倒数第二个元素之间再进行两两比较,以此类推。Java代码public static void bubble_sort(int[] arr) { int i, j, temp, len = arr.length; for (i = 0; i < len - 1; i++) ...原创 2018-03-09 20:31:36 · 100 阅读 · 0 评论 -
今天开始学Java 排序算法之希尔排序
思路:其实就是增量分割子序列+直接插入排序Java代码如下:public void sort(int[] a){ int d = a.length; while(true){ d = d/2; for(int i = 0;i<d;i++ ){ for (int j = i+d;j<a.length;j=j+d){ if(a[j-d]>a[j])...原创 2018-03-09 20:21:39 · 103 阅读 · 0 评论 -
今天开始学Java 排序算法之插入排序
直接插入排序方法是稳定的算法,其平均时间复杂度O(n^2)先打个预防针:稳定排序的算法有直接插入排序、冒泡排序、归并排序。不稳定的排序算法有希尔排序、快速排序、简单选择排序和堆排序。时间复杂度为O(n^2)的有直接插入排序、冒泡排序、快速排序、简单选择排序时间复杂度为O(nlogn)的有堆排序和归并排序空间复杂度为O(n)的是归并排序,O(logn)是快速排序,其余的都是O(1)思想:先将序列中第...原创 2018-03-09 17:17:32 · 90 阅读 · 0 评论 -
今天开始学Java try-catch-finally
例子:package algorithms.com.guan.javajicu;public class TestDemo{ public static String output = ””; public static void foo(inti) { try { if (i == 1) { ...原创 2018-03-09 08:45:39 · 185 阅读 · 0 评论 -
今天开始学Java 二叉树的遍历
import java.util.Stack;public class Tree { public class TreeNode{ int val; TreeNode right; TreeNode left; public TreeNode(int val){ this.val = val; } } //递归前序遍历 public void DGpreOder(TreeNode B...转载 2018-03-15 13:10:56 · 187 阅读 · 0 评论 -
今天开始学Java 链表的实现
线性结构的特点是:(1)存在唯一的一个被称为第一个的数据元素(2)存在唯一的一个被称为最后一个的数据元素(3)除第一个之外,集合中的每个数据元素均只有一个前驱;(4)除最后一个之外,集合中每个数据元素均只有一个后继线性链表:线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以是不连续的)为了表示每个数据元素ai与其直接后继数据元素ai+1之间的逻辑...原创 2018-03-08 12:06:28 · 114 阅读 · 0 评论 -
今天开始学Java 对于二叉树的认识
二叉树是另一种树型结构,它的特点是每个结点至多只有两棵子树(度不大于2),并且二叉树的子树有左右之分,其次序不能任意颠倒。(注,与度为2的有序树也是不同的概念)性质:1、在二叉树的第i层上至多有2^(i-1)个结点(i>=1)证明:利用归纳法易证2、深度为k的二叉树最多有2^k-1个结点3、对于任何一棵二叉树T,若其终端结点数为n0,度为2的结点数为n2,则n0=n2+1满二叉树:一棵深度为...原创 2018-03-08 09:32:51 · 176 阅读 · 0 评论 -
今天开始学Java 对于树的认识
树(Tree)是n个结点的有限级,在任意一棵非空树中:(1)有且只有一个特定的称为(Root)的结点;(2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1、T2......Tm,其中每个集合本身也是一棵树,并且称为子树。例子中是有10个结点的树,结点1是跟,其余结点分为3个互不相交的子集。度:结点拥有子树数。例子中,结点1的度为3,结点4的度为1。度为0的结点称为叶子或者...原创 2018-03-08 08:41:19 · 154 阅读 · 0 评论