如果说吃一个包子不饱,两个包子不饱,到第五个才能饱。这是量变引起的质变。
如果说一个原始文明到一个古代文明再到一个近代文明到现代再到未来。这就是文明的传承。这两个都是前面的铺垫给了现在的辉煌
文明从来都没有灭亡。我们看不到不代表不存在,不仅存在还有可能是我们今朝的缩影。我们不是替换了它,而是一步步传承下去,想了好的方向发展。我们祖宗一辈辈的摸索到了现在中国乃至世界的辉煌。星火相传,奋飞不辍!

这一篇可能用到了一些数学知识,为了去写这一篇,我也是研究了很长时间了。本篇主要介绍平面点对问题,凸包问题,以及分治算法另一个改进途径:增加预处理

1、平面点对问题

什么是平面点对问题

我们先看一个例子:
输入:平面点集P中有n个点,n>1
输出:P中的两个点,其距离最小

对于这个问题我们首先可以用蛮力法进行解决。

蛮力法

所谓的蛮力法就是穷举的思路。在n个点中任取两个点计算距离,然后找到最小的距离,这就是问题的解

我们分析下不难发现,我们任取两个点进行计算距离,不就是C(n,2)的遍历过程,计算出来就是n(n-1)/2

或者说第一个点和剩下的n-1计算距离,比较;然后第二个点再和剩下的n-2个点(因为它和第一个点比较过了)计算距离,比较。这样下去也是n(n-1)/2

然而比较是O(1)的量,因此我们得出这个算法的时间复杂度就是O(n^2)。

大家还记得两点之间的距离公式吗,在P1(x1,y1),P2(x2,y2)。
我们有d=
这就是两点之间的距离公式。

下面我们来分析下代码:

代码写法很简单,首先我们可以根据点的个数进行分类讨论,如果是1个那就直接返回无穷大,如果是两个那就直接进行计算直接输出就行。2个以上的我们可以通过两个for循环进行处理。

从n个点中寻找另外的点。另外的点为了避免重复比较(就是第一个点和第二个点比较完,第二个又和第一个点进行了比较)那么我们可以让j=i+1,j<n。因此我们得出了i=0,i<n-1。也就是在比较第n-1个点到第n个点的时候就比较完了。对于计算和比较我们可以在内层循环进行。最后输出最短距离就行了。因此我们编写代码:

public static void main(String[] args) {// TODO Auto-generated method stubPoint p[]= {new Point(2, 2),new Point(2, 4),new Point(2, 8),new Point(2, 10),new Point(2, -4),new Point(2, 18),new Point(6, 2)};double mindes=Bruteforce(p, p.length);System.out.println("最短距离是:"+mindes);}//计算两点直接的距离public static double Des(Point p1,Point p2) {return Math.sqrt((p2.x-p1.x)*(p2.x-p1.x)+(p2.y-p1.y)*(p2.y-p1.y));}//蛮力法public static double Bruteforce(Point p[],int length) {if(length==1)return 1e20;else if(length==2)return Des(p[0], p[1]);else {double mindis,temp;mindis=Des(p[0], p[1]);for(int i=0;i<length-1;i++)for(int j=i+1;j<length;j++) {temp=Des(p[i], p[j]);if(temp<mindis)mindis=temp;}return mindis;}}public class Point {double x;double y;public Point(double x, double y) {super();this.x = x;this.y = y;}public double getX() {return x;}public void setX(double x) {this.x = x;}public double getY() {return y;}public void setY(double y) {this.y = y;}}

下面我们看一看分治法是怎么解决的。

分治法

分治法的思路就是:
1、将P在中间划分成左右平面,每个平面大概有n/2个点。
2、在左平面PL中找到一个最短的距离
3、在右平面PR中找到一个最短的距离
4、然后我们在这两个平面中找到最短的距离
5、然后我们分析中间那一块,找到跨平面的点的最短距离。
6、最后分析,找到4和5步的最短距离。这个最短距离就是问题的解

好,我们现在一步步的去进行分析
首先我们先以x坐标升序进行排序,如果x坐标相等,那么就要以y坐标进行升序排序。将点集合进行排列。这样我们通过划分,划分出的点总是彼此之间靠的最近。当然也是彼此之间距离最短的点。
对于前四步,我们可以通过递归的方式逐步划成两个点,以第n/2个的点(或者以第n/2和n/2 +1个点的中垂线)进行划分,左面两个点,右面两个点,中间是那个第n/2个点。然后调用点与点的距离公式计算,然后我们去进行判断,找到此时的左右平面中最短的距离

下面我们画个图介绍一下

好,接下来我们进行最后两步
对于最后两步跨平面进行分析,着实很难,但是也有法可解
这里我们介绍一种方法:

我们知道点P1向右不超过d,向上和向下也不超过d,故与点P1构成最短距离的点必然在这么一个d*2d的矩形框内

至于为什么不超过d?
大家想啊,如果p1p2之间的横坐标或纵坐标超过d。那么去想他们之间的距离是不是超过d了。这么说吧,如果两个点的横坐标整好差一个d,再不考虑纵坐标的情况下,两个点代入距离公式就是个d,那要是大于d呢,可不就是距离也大于d了啊

我们分析一下抽出来的模型
我们将矩形划成6个等大小的方格,如下图

我们得出斜线是5/6d,不超过d。那么一个方格只能存放一个点,这是因为两个点都在一个方格里面,那么它们之间的距离就会小于d。这可是与当初的以dmin为界划范围违背啊。
什么意思呢
就是说啊,当初在中间这里划一个dmin的范围,dmin怎么求得?不就是左右平面的最小距离吗,不懂的可以再回去看前四步。而你现在右面一个方格中两个点的距离小于d,这不就坑人了。所以一个方格内只能存放一个点。

那么也就是说左边的那个点P1啊,与右平面构成最短距离顶多就是6个点。当然右平面与左边也是6个点(实际上考虑左边就已经将右边考虑过了)。

那么具体是怎么做呢
首先将跨边界的点进行排序,假定第一个点是左边的点,看第二点,如果第二个点是左边的点就不考虑这个点,直到遇到右面的点,然后就检查第一个点和右面的点的距离是不是小于d。最后检查窄缝如上边的P2与其他点的距离。

我们分析出,跨边界在方格里面的点顶多考虑不超过12个点是O(1)的量,而在窄缝里的点顶多是计算n次(窄缝的点与其他在这个窄缝的点的左右以d范围的点的距离)所以是O(n)的量。
最后分析得出跨边界考虑的时间是O(n)

我们可以把跨边界的换一种思路来去编写代码

我们直接这样设d=min(d1,d2)假定中位线横坐标为X,那么范围就是[X-d,X+d]。也就是将左平面到右平面(包括自己)在那个范围的所有的点都存在一个集合或者数组里;然后我们将这里面的点的集合按照y坐标进行升序排序;然后将点集里面的点两两比较纵坐标的差值,将差值大于等于d的直接跳过,否则计算距离。这样得到的最小的距离与前面得到的dmin进行比较。最终得到真正的解。

我们对这个做法分析下,首先找点集就是O(n)的量,我们先不考虑排序。而对于最后的计算比较,虽然是两层循环,但是中间是有一个continue,是可以打断的。遇到差值大于等于d的直接跳过,对于这个就是比较,也就是O(1)的量。而小于d的才是真正进入循环计算的。当然也就是O(n)的量。所以最后不考虑排序的话就是O(n)的量。

这就是最后两步的做法

我们先上个伪码:

这里我们看到,第一步直接计算,或者说就是递归边界处理是O(1)的量
第二步是排序,时间复杂度是O(nlogn)(至于为什么是nlogn,大家可以搜搜排序的决策树就明白了)
第三部是计算然后进行划分也是O(1)
第4,5步对于递归就是2T(n/2)
第6步算左右平面最小距离也是O(1)
对于第7步,如果我们考虑排序的话不就是O(n)+O(nlogn)=O(nlogn)

最后我们分析出这个时间复杂度就是
T(n)=2T(n/2)+2O(nlogn)=2T(n/2)+O(nlogn)
T(n)=O(1),n<=3

这个我们可以通过递归树得

根据完全二叉树定理,n=2^k,即k=logn(n是节点数,k是深度)
将上图右边的式子相加得,
nlogn+n(logn-1)+n(logn-2)+…+n(logn-k+1)
= nlogn+nlogn+nlogn+…+nlogn-n(1+2+3+4+…+k-1)
= nklogn(有多少深度,就有多少的logn。绝对不是n个logn) -n(k(k-1)/2)
= nklogn-n((k2-k)/2
这里我们把k=logn带进去得,
= n(logn)2-n((logn)2/2-(logn)/2)
= n(logn)2-n(logn)2/2-n(logn)/2
= O(n(logn)2) (读作:logn的平方乘以n)

因此我们分析出时间复杂度就是:O(n(logn)2)=O(nlogn·nlogn)

那么有没有可以再改进的算法呢?

改进分治算法的途径

我们可以增加预处理的方式,降低上面问题的时间复杂度
在T(n)=aT(n/b)+f(n)中
增加预处理,从而减少f(n)

我们可以根据增加预处理来降低上面算法的时间复杂度

在递归前,对坐标进行排序,作为预处理
比如说:
我们可以把一开始对横坐标的排序放到递归方法的外面
把对纵坐标的排序直接删掉(增加对纵坐标的排序,是因为在计算两个点纵坐标的差值的时候是准确的进行大的减小的,也就是不会出现负值的情况),用绝对值(Math.abs())进行替代这一步操作。

当然我看网上有直接在递归方法里面用归并排序直接排,具体的可以参考网上的。这里不再深究了。

通过这样分析得出:
设,递归过程是W(n),预处理过程是O(nlogn)
T(n)=W(n)+O(nlogn)
W(n)=2W(n/2)+O(n)
W(n)=O(1),n<=3

我们通过主定理的方式得出W(n)=O(nlogn),因此T(n)=2O(nlogn)
故时间复杂度就变成了O(nlogn)
我们看到,通过增加预处理,已经把时间复杂度降到了O(nlogn)

具体代码分析

这里我们只重点分析下,跨边界代码
首先我们先创建集合
因为要将左平面到右平面(包括自己)在那个范围的所有的点都存在一个集合或者数组里
i=left,i<=right
if(Math.abs(p[mid].x-p[i].x)<=mindes)
然后将i加进集合里

最后我们要对点集寻求最短距离
那么循环范围是
i=0,i<List.size()-1
j=i+1,j<List.size()
然后我们拿出来存在该下标的值,p[值]就是.y就是这个点的纵坐标(有点绕,这个问题多想想)
if(Math.abs(p[pointy.get(i)].y-p[pointy.get(j)].y)>=mindes)
continue;
如果小于mindes(最短距离),那么我们就计算两点之间的距离。两点之间的距离还小于mindes,那么这个最小距离就是我们要的解了

接下来,上代码

public static void main(String[] args) {// TODO Auto-generated method stubPoint p[]= {new Point(2, 2),new Point(2, 4),new Point(2, 8),new Point(2, 10),new Point(2, -4),new Point(2, 18),new Point(6, 2)};Arrays.sort(p, new Comparator<Point>() {@Overridepublic int compare(Point o1, Point o2) {// TODO Auto-generated method stubif(o1.x>=o2.x) {if(o1.x>o2.x)return (int) (o1.x-o2.x);elsereturn (int) (o1.y-o2.y);}else return (int) (o1.x-o2.x);}});double mindes2=Dividepoint(0, p.length-1, p);System.out.println("最短距离是:"+mindes2);}//计算两点直接的距离public static double Des(Point p1,Point p2) {return Math.sqrt((p2.x-p1.x)*(p2.x-p1.x)+(p2.y-p1.y)*(p2.y-p1.y));}//分治法public static double Dividepoint(int left,int right,Point p[]) {double mindes=1e20;if(left==right)return mindes;else if(left+1==right)return Des(p[left], p[right]);else {int mid=(left+right)>>1;double LeftminDes=Dividepoint(left, mid-1, p);double RightminDes=Dividepoint(mid+1, right, p);if(LeftminDes>=RightminDes)mindes=RightminDes;elsemindes=LeftminDes;List<Integer> pointy=new ArrayList<Integer>();for(int i=left;i<=right;i++){if(Math.abs(p[mid].x-p[i].x)<=mindes)pointy.add(i);}for(int i=0;i<pointy.size()-1;i++)for(int j=i+1;j<pointy.size();j++) {if(Math.abs(p[pointy.get(i)].y-p[pointy.get(j)].y)>=mindes)continue;double temp=Des(p[pointy.get(i)],p[pointy.get(j)]);if(temp<mindes)mindes=temp;}return mindes;}}public class Point {double x;double y;public Point(double x, double y) {super();this.x = x;this.y = y;}public double getX() {return x;}public void setX(double x) {this.x = x;}public double getY() {return y;}public void setY(double y) {this.y = y;}}

对于这个代码你也许会问,在处理跨边界问题的时候,两个同一面的点会不会进行比较?

大家看啊,我们划分的只有两个点,所以说一边平面的点我们已经计算完了,而且也已经和另一面的比较完了。所以同一面的另外一个点是不会加进集合里面的。大家看啊,我们划分的只有两个点,所以说一边平面的点我们已经计算完了,而且也已经和另一面的比较完了。所以同一面的另外一个点是不会加进集合里面的。

我们已经知道了,改进分治算法的途径有两种:1、减少子问题的个数(a),2、增加预处理(fn)

2、凸包问题

什么是凸包问题?

百度上给的答案:在一个实数向量空间V中,对于给定集合X,所有包含X的凸集的交集S被称为X的凸包。X的凸包可以用X内所有点(X1,…Xn)的凸组合来构造.

也就是:
给定大量离散点集合Q,求一个最小的凸多边形,使得Q中的点在该多边形内或者边上

说白了就是找一个大的凸多边形,可以包含所有的点
例如:
找到一个大的凸多边形,可以包含所有的点
这个问题的解:

凸包问题应用非常广泛:可以用于字形识别、碰撞检测。我觉得仅一个碰撞检测就能涉及到不少行业

凸包问题的算法
蛮力法

对于一个n个点集合中的两个点p1和p2,当且仅当该集合中的其它点都位于穿过这两点的直线的同一边时,它们的连线就是该集合凸包边界的一部分,简言之,p1和p2就是凸包问题中最小凸多边形的顶点。对每一对点都做一遍检验之后,满足条件的线段就构成了该凸包的边界。

就是说任取两个点连接成一条直线,考虑剩下的几个点是否全部都在所连接的直线的同一侧。如果是,则将这个点加进数组或集合里;若存在一个点不在同一侧,则这个点将被抛弃,最后输出数组或集合里面的点就是问题的解

那么首先考虑一个问题,如何判断一个点在直线的哪一侧。

根据过两点的直线方程,得:

(具体的计算过程我忘了,大家可以上网搜搜)

我们只需要把测试的点,即P3代进去就可以知道符号(正负),若得到的结果为正值,则点在直线的左侧;若得到的结果是负值,则点在直线的右侧;若得到结果为0,则点在线上我们只需要把测试的点,即P3代进去就可以知道符号(正负),若得到的结果为正值,则点在直线的左侧;若得到的结果是负值,则点在直线的右侧;若得到结果为0,则点在线上

然后要的点一般都是>=0或者<=0。如果在判断的过程中出现了异号的情况,那么就不是要的点,舍弃掉,寻找下一个点。

这里就不再分析了,直接上代码

public static void main(String[] args) {// TODO Auto-generated method stubPoint p[]= new Point[8];p[0] = new Point(1,0);p[1] = new Point(0,1);p[2] = new Point(0,-1);p[3] = new Point(-1,0);p[4] = new Point(2,0);p[5] = new Point(0,2);p[6] = new Point(0,-2);p[7] = new Point(-2,0);Point[] result = getconvexhull(p);System.out.println("集合中满足凸包的点集为:");for(int i = 0;i < result.length;i++)System.out.println("("+result[i].x+","+result[i].y+")");}//蛮力法public static Point[] getconvexhull(Point p[]) {Point result[]=new Point[p.length];  //存放凸包点集int lr=0;int flag=0;int len=0;  //记录凸包点集的个数int k;for(int i=0;i<p.length;i++)for(int j=0;j<p.length;j++) {if(i==j)continue;for(k=0;k<p.length;k++) {double a=p[j].y-p[i].y;double b=p[i].x-p[j].x;double c=p[i].x*p[j].y-p[i].y*p[j].x;double value=a*(p[k].x)+b*(p[k].y)-c;if(value>0) {if(flag==0)flag=1;lr=1;}else if(value<0) {if(flag==0)flag=-1;lr=-1;}if(lr!=flag)break;}flag=0;lr=0;if(k==p.length) {result[len++]=p[i];break;}}Point[] result1 = new Point[len];for(int m = 0;m < len;m++)result1[m] = result[m];return result1;}public class Point {double x;double y;public Point(double x, double y) {super();this.x = x;this.y = y;}public double getX() {return x;}public void setX(double x) {this.x = x;}public double getY() {return y;}public void setY(double y) {this.y = y;}}
蛮力法分析

我们看到任取两个点就是n(n-1)/2,而再和剩余的n-2个点进行比较(比较:O(1))。因此
T(n)=(n-2)·(n(n-1)/2)
因此蛮力法的时间复杂度就是O(n^3)

分治法

我们先介绍两个概念:上包和下包
任意连接平面的两个点所构成的直线,直线的上(左)方所构成的平面是上包,直线的下(右)方所构成的平面是下包。

我们再上包或者下包中找到一个Pmax,使Pmax离直线的距离最大。任取的两个点分别与Pmax点相连,进行划分

而对于一开始的任取两点,先将点集排序,我们一般是取横坐标最小的点(如果横坐标最小的点有多个则选取纵坐标最小的点)和横坐标最大的点(如果横坐标最大的点有多个则选取纵坐标最大的点),选取的两个点上面是上包,下面是下包。随后再上(下)包中找到距直线最大距离的点Pmax。

大家想一想任取的那两个点是一定在凸包上的。

然后任取的两个点分别与点Pmax相连。所围成的是一个三角形平面。举例如下:
例如这些点

首先我们先找到横坐标最小和最大的点,然后连接起来

然后在上包(即直线上边的平面)寻找一个距直线最大距离的点Pmax,然后分别与P1,P2相连

那么我们发现在上包中,用三角形划分了几个区域,P1Pmax左边的会产生下一个上包的Pmax,P2Pmax的右边也会产生下一个下包的Pmax。三角形区域里面的是包含的点

我们再解决几个问题:
1、怎么判断直线的上下包以及寻找Pmax
2、怎么进行递归划分以及下一个要寻找的上下包以及Pmax
3、返回的解是什么,怎么处理

我们先看第一个问题。如何寻找直线同一侧的点的问题,我们再上边已经介绍过了一种方法。这里我们再说一种最常规的方式

我们将上图的P1P2为一有向直线,定P1指向P2。如图

然后我们用矩阵来判断点在直线的左方还是右方:
P1P2是一有向直线,P1(x1,y1),P2(x2,y2)。现有一P3(x3,y3),判断P3在直线的哪一侧

结果大于0,则P3在直线的左侧;结果小于0,则P3在直线的右侧;结果等于0,点在线上

而寻找最大距离Pmax,就是我们可以用点到直线的距离公式:

下面我们解决第二个问题
递归划分,我们可以通过P2在P1Pmax的左侧还是右侧来进行划分
若是左边则P2Pmax是下一个小凸包里的上包,P1Pmax则是下一个小凸包里的下包
否则就是P2Pmax是下一个小凸包里的下包,P1Pmax则是下一个小凸包里的上包

这里我们考虑一个临界问题:

假设这是上包的边,上边已经没有点了。所以P1P2肯定是凸包上的两个点,但是有一个点Pmax与P1P2共线,如果题目让你找出凸包上的所有点,那么点Pmax这个点是不能舍弃的,看图能看出来P1Pmax这个边是要归在上包里面的,而P2Pmax是要归到下包里面的。因为有向直线P1Pmax的左边没有点了,而有向直线P2Pmax的右边也没有点了。


同理P1Pmax是要归在下一个小凸包的下包里的,P2Pmax是要归到上包里的。

也就是说在研究上(下)包时,如果碰到三点不共线的时候,判断P2在哪一侧。然后划分出下一个上下包的点递归求解,直到再也找不到Pmax,就说明某一侧再也没有点了;如果碰到三点共线的时候。就可以按照上边的进行考虑;如果遇到了没有找到Pmax,我们就可以把P1加到点集中(如果上包将P1加到点集,下包就加P2;反之也可以),最后我们直接返回点集,就解决了第四个问题了。最后那个点集里面所有的点就是问题的解。

直接上代码:

public static Point ch[];public static int num=0;public static void main(String[] args) {// TODO Auto-generated method stubPoint p[]= new Point[8];p[0] = new Point(2,0);p[1] = new Point(0,2);p[2] = new Point(0,-2);p[3] = new Point(-2,0);p[4] = new Point(1,0);p[5] = new Point(0,1);p[6] = new Point(0,-1);p[7] = new Point(-1,0);//将x坐标按升序排序,若x相同则按照y排序Arrays.sort(p, new Comparator<Point>() {@Overridepublic int compare(Point o1, Point o2) {// TODO Auto-generated method stubif(o1.x>=o2.x) {if(o1.x>o2.x)return (int) (o1.x-o2.x);elsereturn (int) (o1.y-o2.y);}else return (int) (o1.x-o2.x);}});ch=new Point[p.length];dchull(0, p.length-1, p);uchull(0, p.length-1, p);Point[] result = new Point[num];for(int i = 0;i < num;i++)result[i] = ch[i];System.out.println("集合中满足凸包的点集为:");for(int i = 0;i < result.length;i++)System.out.println("("+result[i].x+","+result[i].y+")");}//三个点的叉乘public static double mul(Point p1,Point p2,Point p3) {return p1.x*p2.y+p3.x*p1.y+p2.x*p3.y-p3.x*p2.y-p2.x*p1.y-p1.x*p3.y;}//点到直线的距离public static double distance(Point p1,Point p2,Point p3) {return Math.abs((p2.y-p1.y)*p3.x+(p1.x-p2.x)*p3.y+(p1.y-p2.y)*p1.x+(p2.x-p1.x)*p1.y)/Math.sqrt(Math.pow(p2.y-p1.y,2)+Math.pow(p1.x-p2.x,2));}//下包分治法求解public static void dchull(int a,int b,Point p[]) {int j=-1,l,r,dch,uch;double dis=-1;//判断传入的下标所表示的点在坐标系的位置,左边的下标赋给l,右边的赋给rif(a<=b) {l=a;r=b;}else {l=b;r=a;}//根据叉乘来找到一个点在直线的右边,并且与p[a]和p[b]所连接直线的最大距离的pmaxfor(int i=l+1;i<r;i++) {if(mul(p[a], p[b], p[i])<=0) {if(distance(p[a], p[b], p[i])>dis) {dis=distance(p[a], p[b], p[i]);j=i;}}}//未找到,则这两个点就是在凸包上直接相连的点if(j==-1) {ch[num++]=p[a];return;}//判断p[b]是在p[a]和p[j]所连接直线的左边还是右边//若是左边则p[b],p[j]是下一个小凸包里的上包,p[a],p[j]则是下一个小凸包里的下包//否则就是p[b],p[j]是下一个小凸包里的下包,p[a],p[j]则是下一个小凸包里的上包if(mul(p[a], p[j], p[b])<0) {uch=a;dch=b;}else {uch=b;dch=a;}dchull(dch, j, p);uchull(uch, j, p);}//上包分治法求解public static void uchull(int a,int b,Point p[]) {int j=-1,l,r,dch,uch;double dis=-1;//判断传入的下标所表示的点在坐标系的位置,左边的下标赋给l,右边的赋给rif(a<=b) {l=a;r=b;}else {l=b;r=a;}//根据叉乘来找到一个点在直线的右边,并且与p[a]和p[b]所连接直线的最大距离的pmaxfor(int i=l+1;i<r;i++) {if(mul(p[a], p[b], p[i])>=0) {if(distance(p[a], p[b], p[i])>dis) {dis=distance(p[a], p[b], p[i]);j=i;}}}//未找到,则这两个点就是在凸包上直接相连的点if(j==-1) {ch[num++]=p[b];return;}//判断p[b]是在p[a]和p[j]所连接直线的左边还是右边//若是左边则p[b],p[j]是下一个小凸包里的上包,p[a],p[j]则是下一个小凸包里的下包//否则就是p[b],p[j]是下一个小凸包里的下包,p[a],p[j]则是下一个小凸包里的上包if(mul(p[a], p[j], p[b])<=0) {uch=a;dch=b;}else {uch=b;dch=a;}dchull(dch, j, p);uchull(uch, j, p);}public class Point {double x;double y;public Point(double x, double y) {super();this.x = x;this.y = y;}public double getX() {return x;}public void setX(double x) {this.x = x;}public double getY() {return y;}public void setY(double y) {this.y = y;}}

最后我们分析一下。大家想一个最坏的情况。如果一边只有一个点。而另一边却是n-1个点的情况。我们按照这个情况进行分析:

总时间复杂度:T(n)
对点集进行排序(预处理):O(nlogn)
递归过程:W(n)
找Pmax:O(n)
根据点的位置进行划分:O(1)
递归调用:W(n-1)

则W(n)=W(n-1)+O(n)
我们通过递归树解出:W(n)=O(N^2)
则T(n)=O(n^2)+O(nlogn)
T(n)=O(n^2)
因此最坏时间复杂度就是O(n^2)
而平均时间复杂度就是可以参考快速排序得出:O(nlogn)

而对于Graham扫描法,我们下一篇再提

######         察己则可以知人,察今则可以知古。《吕氏春秋·览·慎大览》

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. RF工具结构目录设置

    主要是对RF的目录结构进行定义,在项目中可以根据用例快速找到单个关键字,对于交接的人或者不熟悉项目人可以更快的上手熟悉用例RF工具框架结构目录RF主要有以下几个目录: 一级目录为项目名称文件夹二级目录:2.Bussiness文件夹:场景用例组合2-1:建立文件夹,按照用例场景的…...

    2024/4/23 14:38:13
  2. ChromeFK插件推荐系列十八:前端工具之Font识别插件推荐

    本次分享几个开发者平时使用到Developer Tools插件,内容来自: chromefk。希望对你有所帮助。1、【CHROMEFK】Font FinderAn easy-to-use font inspector to get CSS styles of the selected elementhttps://www.chromefk.com/ext-font-finder__bhiichidigehdgphoambhjbekalahgh…...

    2024/4/23 14:38:20
  3. 英语口语138之每日十句口语

    2020/04/14 每日十句英语口语 1.It’s a deal. 2.One more thing I forgot. 3.Does the rent cover the utilities? 4.What’s your rule about pets? 5.I’m still deciding. 6.The stove (refrigerator, air conditioning, etc.) doesn’t work. 1.成交。 2.还有件事儿我忘…...

    2024/4/23 14:38:11
  4. ABAP 不等于 大于等于 小于等于的几种写法

    不等于:【NE】、【<>】、【><】;大于等于:【GE】、【>=】、【=>】;小于等于:【LE】、【<=】、【=>】。小于:【LT】、【<】;大于:【GT】、【>】;DATA: A TYPE I,B TYPE I.****************TEST1:WRITE:TEST1:, / .A = 1.B = 1.IF B >…...

    2024/4/20 15:30:14
  5. idea之maven 爬坑记

    昨天遇到这样一个问题:maven引用的资源在maven的中央库中没有了。采用的解决方案为把同事的jar包拷贝到我的E盘根目录,然后用maven命令把包加入本地maven仓库。命令如下:mvn install:install-file -Dfile=E:\nacos-config-1.1.0.jar -DgroupId=com.alibaba.nacos -Dartifact…...

    2024/4/18 13:56:20
  6. 获取class对象三种方式

    //向对象拿Class clz=new ClassText().getClass();//向源头拿Class clz2=ClassText.class;//偷Class clz3=Class.forName("包名.类名");...

    2024/4/17 6:42:43
  7. Codeforces Round #634 (Div. 3)

    A. Candies and Two Sisters 姐姐和妹妹分n颗糖,姐姐必须比妹妹的少,问有几种情况,必须每人至少有一颗 //答案:(n-1)/2B. Construct the String 有n,a,b,长度是n的字符串,构造一个长度为n的字符串,每a个字符串,都有b个不同字母,输出其中一个。 思路:直接按照(i%b…...

    2024/4/17 6:43:01
  8. Java Stream分组取最大值合并list, 排序倒叙

    根据属性A分组,然后取分组里属性B最大的值, 最后合并成listMap<String, IWLS_EnDepotEntry> collect = endepot.stream().collect(Collectors.groupingBy(IWLS_EnDepotEntry::getPurBCode,Collectors.collectingAndThen(Collectors.reducing((c1, c2) -> c1.getNum().…...

    2024/4/17 6:42:43
  9. 消息中间件面试题

    记录一下,消息中间件面试题https://jsbintask.cn/2019/01/28/interview/interview-middleware-one/...

    2024/4/23 2:49:21
  10. python 爬虫 正则表达式

    正则表达式概述 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。 正则表达式的大致匹配过程是: 1.依次拿出表达式和文本中的字符比较, 2.如果…...

    2024/4/20 5:18:12
  11. 利用子网掩码划分子网

    分类IP地址的弊端一个物理网络不能过大,否则网络性能很差,某个B类或A类IP网络无法全部用于单个物理网络 分类IP地址分配不合理,利用率低 分类IP地址设计的弊端 —— 不灵活,IP地址利用率不高划分子网的思路 网络管理员将本应属于一个物理网段的单个分类IP网络划分成多个子网…...

    2024/4/19 18:21:54
  12. 【Visual Studio】之重新打开解决方案时不是上一次的状态

    VS重新打开解决方案时不是上一次的状态,比如没有自动打开关闭时的项目文件等。解决方法:打开解决方案文件夹,显示隐藏文件夹,找到下面文件夹并删除,重新打开后就OK了参考:https://blog.csdn.net/breakbridge/article/details/83860105...

    2024/4/23 14:38:18
  13. linux day1

    课程简介 linux服务器配置及常⽤命令centos 开发软件配置及服务环境的搭建 软件的安装和配置 mysql数据库使⽤、monDB使⽤、redius的使⽤ git的使⽤html/css js、jquery、vue 课程学习⽅式 学习⽅法: linux学习基本上都是命令和配置命令要多敲多记 掌握基本配置 多在⽹上浏览相…...

    2024/4/17 6:42:43
  14. 从小世界模型看病毒传播

    1,引言近期哈尔滨又发生多起新冠病毒传播案例,从公布出来的传染轨迹来看,可以用小世界模型来进行分析。2,模型介绍小世界模型是Watts和Strogatz在1998年提出的基于人类社会网络的网络模型。基本的模型架构是大量的点均匀排布成网络状,其中相邻的点连接成三角形,同时还有少…...

    2024/4/23 14:38:08
  15. Linux笔记0---补过去,小部分丢失

    java配置: 编辑/etc/profile文件,新增以下内容: export JAVA_HOME=/usr/local/jdk export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$JAVA_HOME/bin:$PATH tomcat的使用: 使用tail -f查看Tomcat文件下的logs文件夹中的catalina.out信息即可知…...

    2024/4/23 14:38:07
  16. 验证码执行流程

    本篇主要讲述验证码的验证流程,包括如何验证码的实现、如何获取验证码、识别验证码(这篇是人来识别,机器识别放在下篇)、发送验证码。同样以一个例子来说明。目标网址 http://icp.alexa.cn/index.php(查询域名备案信息)1.验证码的实现:简单的说,验证码就是一张图片,图…...

    2024/4/25 19:24:57
  17. node常用内置模块之events事件模块

    目录1.eventEmitter 类1.1 EventEmitter类的各种方法2.eventEmitter类的各种方法详解2.1 绑定事件(addListener 或 on) 2.2 emit方法触发事件2.3 只绑定一次事件once2.4 解除事件绑定2.5 setMaxListeners 指定事件处理函数最大的事件绑定个数2.6 getMaxListeners 获取事件处理函…...

    2024/4/28 4:49:59
  18. 疫情困境下,送给每一位求职者的突围指南

    今年受这波疫情的影响,大环境不太好,金三银四是指望不上了,能有岗位提供就不错了。很多公司都冻结 HC ,并且裁员、倒闭的公司一大堆。 这时候有一份稳定的工作挺好的,最起码不要去跟那些 985/211 的研究生、大厂牛人竞争那少的可怜的岗位。如果公司工资正常发放,甚至还能…...

    2024/4/23 14:38:11
  19. 2020-04-13

    求助 车牌号识别中的边缘检测不清晰 先用加权平均值灰度化,再用直方图均衡,然后用otsu阈值分割,前面这几步都是清晰的。 但是!边缘检测那一步用了sobel算子、Roberts算子、Prewitt算子、Log算子、Canny算子,都不清晰,以至于下面的步骤没办法进行。求各位路过的大佬给个解…...

    2024/4/23 14:38:06
  20. 在Windows上安装Ubuntu子系统系统,报错WslRegisterDistribution failed with error: 0x8007019e

    在Windows应用商店安装Ubuntu系统,报错WslRegisterDistribution failed with error: 0x8007019e 1. 报错内容 Installing, this may take a few minutes... Installation Failed! Error: 0x8007019e Press any key to continue...这是因为电脑中没有安装 Windows 子系统支持 2…...

    2024/4/23 14:38:02

最新文章

  1. Linux下软硬链接和动静态库制作详解

    目录 前言 软硬链接 概念 软链接的创建 硬链接的创建 软硬链接的本质区别 理解软链接 理解硬链接 小结 动静态库 概念 动静态库的制作 静态库的制作 动态库的制作 前言 本文涉及到inode和地址空间等相关概念&#xff0c;不知道的小伙伴可以先阅读以下两篇文章…...

    2024/4/30 16:14:31
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. Unity核心学习

    目录 认识模型的制作流程模型的制作过程 2D相关图片导入设置图片导入概述纹理类型设置纹理形状设置纹理高级设置纹理平铺拉伸设置纹理平台打包相关设置 SpriteSprite Editor——Single图片编辑Sprite Editor——Multiple图片编辑Sprite Editor——Polygon图片编辑SpriteRendere…...

    2024/4/30 2:22:20
  4. 权限提升-Linux系统权限提升篇VulnhubRbash绕过DockerLXD容器History泄漏shell交互

    知识点 1、普通用户到Linux-泄漏-History 2、普通用户到Linux-限制-Rbash绕过 3、普通用户到Linux-容器-LXD&Docker 4.Linux系统提权-web/普通用户-docker逃逸&提权&shell交互 章节点&#xff1a; 1、Web权限提升及转移 2、系统权限提升及转移 3、宿主权限提升及…...

    2024/4/30 4:03:17
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/4/29 23:16:47
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/4/29 6:03:24
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/29 2:29:43
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/4/29 14:21:50
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/27 17:58:04
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/28 1:28:33
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/30 9:43:09
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/27 17:59:30
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/4/25 18:39:16
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/28 1:34:08
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/29 20:46:55
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/25 18:39:14
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/4/26 23:04:58
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/27 23:24:42
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/28 5:48:52
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/30 9:42:22
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/4/30 9:43:22
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/30 9:42:49
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57