自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 HTTP状态码(分类及常见状态码)

HTTP状态码:HTTP状态码(HTTP status code)。当访问一个网页时,浏览器会向网页所在服务器发送请求,当浏览器接收并显示网页之前,网页所在的服务器会返回一个包含HTTP状态码的信息头用以响应此浏览器的请求。HTTP状态码有五类:1) 1xx: 信息提示,表示请求已被成功接收,继续处理。2) 2xx: 请求被成功提交3) 3xx: 客户端被重定向到其他资源4) 4xx: 客户端错误代码,格式错误或者不存在资源5) 5xx: 服务端内部错误常见状态码:200: 客户端请求成功

2020-05-31 15:31:43 526

原创 编程中十大常用算法:(七)克鲁斯卡尔算法(最小生成树)

介绍克鲁斯卡尔(Kruskal)算法,是用来求加权连通图的最小生成树的算法。基本思想:按照权值从小到大的顺序选择n-1条边,并保证这n-1条边不构成回路具体做法:首先构造一个只含n个顶点的森林,然后依权值从小到大从连通网中选择边加入森林中,并使森林不产生回路,直至森林变成一棵树为止。图解说明以上图G4为例,来对克鲁斯卡尔进行说明(假设:用数组R保存最小生成树结果)(1)将边<E,F>加入R中边<E,F>的权值最小,因此将它加入到最小生成树结果R中。(2)将边&

2020-05-31 12:21:37 640

原创 编程中十大常用算法:(六)普里姆算法(最小生成树)

背景修路问题:(1)有七个村庄(A-G),现需要修路把7个村庄连通(2)各个村庄的距离用边线(权值)表示,例如村庄A到村庄B的距离为5公里求:如何修路保证各个村庄都能连通,并且总的修建公路总里程最短?解决方法:最小生成树最小生成树修路问题本质就是最小生成树(Minimum Cost Spanning Tree, MST)问题,给定一个带权的无向连通图,如何选取一个生成树,使树上所有边上权值的总和最小,这就叫最小生成树。求解最小生成树的算法主要有普里姆算法和克鲁斯卡尔算法。普里姆算法

2020-05-30 11:59:49 1243

原创 编程中十大常用算法:(五)贪婪算法

理论介绍贪婪算法(又称贪心算法)是指在对问题进行求解时,在每一步中都采取最好或者最优(即最有利)的选择,从而希望能够导致结果是最好或者最优的算法。贪婪算法所得到的结果不一定是最优的结果(有时会是最优解),但是都是近似最优解的结果。实际运用-集合覆盖问题:假设存在如下表所示需要付费的广播台,以及广播台信息可以覆盖的地区。如何选择最少的广播台,让所有的地区都可以接收到信号。穷举法:列出每个可能的广播台的集合,这被称为幂集。假设共有n个广播台,则广播台的组合共用2n-1个,效率低。解决办法:贪婪

2020-05-24 14:06:59 1115

原创 编程中十大常用算法:(四)KMP算法

背景字符串匹配问题:(1)有一个字符串str1=“BBC ABCDAB ABCDABCDABDE”,和一个子串str2=“ABCDABD”(2)现在要判断str1中是否含有str2,如果存在,就返回第一次出现的位置,如果没有,则返回-1暴力匹配算法:利用暴力匹配算法,假设现在str1匹配到i位置,子串str2匹配到j位置,则有:1)如果当前字符串匹配成功(即str1[i]=str[j]),则i++,j++,继续匹配下一个字符2)如果匹配失败(即str1[i]!=str[j]),则i=i-(j-

2020-05-24 12:23:42 614

原创 编程中十大常用算法:(三)动态规划算法

理论介绍动态规划(Dynamic Programming, DP)算法的核心思想为:讲大问题划分成小问题进行解决,从而一步步获取最优解的处理算法。动态规划算法与分治算法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。与分治算法不同的是,适合于用动态规划求解的问题,经分解得到的子问题往往不是相互独立的(即下一子阶段的求解是建立在上一子阶段的解的基础之上,进行进一步的求解)。动态规划算法可以通过填表的方式来逐步推进,得到最优解。实际问题:背包问题问题

2020-05-23 10:39:16 848

原创 编程中十大常用算法:(二)分治算法

理论介绍分治算法在日常的编程中经常被使用,观其名知:“分而治之”,将一个复杂的问题分为多个相同或者相似的子问题,在将子问题划分为更小的子问题,直至最后的子问题可以简单的直接求解,子问题的解合并即为原问题的解。经典运用1.汉诺塔2.合并排序3.快速排序4.棋盘覆盖5.循环赛日程表6.二分搜索7.最接近点对问题等等…分治算法的基本步骤分治算法在每一次递归上都有三个步骤(1)分解...

2020-04-01 16:16:44 401

原创 编程中十大常用算法:(一)二分查找算法

理论介绍二分查找算法适用于在有序的数列中查找目标数据,若数量未排序,需先将数列进行排序之后在进行查找。二分查找的时间复杂度为O(log2N),即查找到目标数据的位置最多只需log2N步。代码实现(非递归)对数列{1,4,7,14,19,54,102}进行二分查找,利用Java编程语言实现,代码如下:package com.zq.ten_Algorithms;public class ...

2020-04-01 15:27:52 312

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除