算法
文章平均质量分 57
ducking__
这个作者很懒,什么都没留下…
展开
-
分治求解最大子数组
函数计算跨越中点的最大子数组。将左右两部分和跨越中点的最大子数组中的最大值作为结果返回。计算跨越中点的最大子数组。这需要从中点县向左和向右分别扩展,找到包括中点的最大子数组。函数分别求解左半部分和右半部分的最大子数组。递归求解左半部分和右半部分的最大子数组。右半部分:从mid+1 到high。mid为low+high的中点。左半部分:从low到mid。将数组分成左右两部分。原创 2024-07-04 22:24:46 · 263 阅读 · 0 评论 -
02归并排序——分治递归
过将一个复杂问题分解为较小的子问题,逐个解决这些子问题,然后合并解决方案来解决原问题。,继续将其分解成更小的子数组,直到每个子数组只包含一个元素或为空(达到基准情况),这时不需要进一步分解,直接返回。当递归返回时,子数组已经有序,然后调用merge函数,将两个有序的子数组合并成一个有序的数组。从栈的角度分析,不断的入栈,规模不断减小,等待基准条件满足再回归(出栈),最高回归出结果。这是递归函数调用自身的地方,将问题分解成一个或多个子问题,然后递归地解决这些子问题。在归并排序中,数组arr[1…原创 2024-07-02 22:07:47 · 980 阅读 · 0 评论 -
1_插入排序_循环不变式
通过内部的while循环,算法会找到适当的位置插入arr[i], 并保持已经排序部分的顺序不变,因此,在这次迭代结束后,子数组arr[0, …此时,循环不变式结合终止条件表明整个数组是已排序的,从而证明算法的正确性。那么然后在这次迭代中,算法会将arr[i]插入到已排序的子数组arr[0, …通过证明循环不变式在每次迭代中都成立,我们可以证明算法在终止时得到正确的结果。证明当循环终止时,不变式结合循环终止条件能推出算法的正确性。在第一次迭代中,子数组arr[0]只包含一个元素,它显然是已排序的。原创 2024-07-01 21:47:23 · 398 阅读 · 0 评论