标签:严格 现在 ide 意思 任务 复杂 hoc 怎么 体会
分治,即分而治之,是将一个规模为n的问题分解为k个规模较小的子问题,这些子问题互相独立且与原问题相同。递归地解决这些子问题,然后将各子问题的解合并得到原文题的解。其算法设计模式如下:
divide-and-conquer(P){
if (|P|<=n0)
adhoc(P);
divide P into smaller subinstances P1,P2,...,Pk;
for (i=1; i<=k; i++)
yi = divide-and-conquer(Pi);
return merge(y1,y2,...,yk);
在人们大量的实践中,发现在用分治法的时候,使子问题规模大致相同是最好的,,而许多问题中,将一个问题分成大小相等的k个子问题的处理方法(一般情况下k=2)几乎总是比子文体规模不等的好。
对分治法深有体会的一次是第一次结对编程那会的第二题。原先老师还没要求时间复杂度为O(log2 n)时,我是直接在main函数里直接写了if进行判断的,然后一堆的判断语句。把时间复杂度扩大到了O(n)。后来就开始思索要怎样将复杂度变小。当时是明确知道要用二分法才能将时间复杂度变小,但还不知道怎么在find函数里添加语句进行判断。用二分法就可以将时间复杂度变为O(log2 n)。后来加上了下面这两个语句。
标签:严格 现在 ide 意思 任务 复杂 hoc 怎么 体会
原文地址:https://www.cnblogs.com/wen-05/p/11671078.html