分治法
文章平均质量分 57
望北i
写博客是为了总结自己所学,有什么不对的地方还希望大佬们多多指点
展开
-
分治法快速排序
快速排序快速排序是按照元素的值对他们进行划分。划分是对给定数组中的元素的重新排列,使得A[s]左边的元素都小于等于A[s],而所有A[s]右边的元素都大于等于A[s]。A[0]…A[s-1] A[s] A[s+1]…A[n-1]建立了一个划分后,A[s]已经位于它在有序数组中的最终位置,接下来我们对A[s]前和A[s]后的子数组分别进行排序(使用同样的方法),注意在快速排序中,算法的主要工作在于划分阶段,而不需要再去合并子问题的解了快速排序的划分算法QuickSort(A[l…r])//用Qu原创 2021-05-23 22:01:46 · 4934 阅读 · 0 评论 -
分治法合并排序
合并排序合并排序是分治法的应用的一个完美例子。分治法的描述讲解,对于一个需要排序的数组 A[0… n-1],合并排序把他们一分为二:A[0…[n/2]-1] 和 A[0…[n/2]-1] ,并对每个数组递归排序,然后把这两个排好的子数字合并为一个有效数组。分治过程算法MergeSort( 0 , n - 1)//递归调用mergesort来对数组划分//输入:数组排序元素的开始下表和结束下表//输出升序排列的数组if( c < d)mid <–( c + d) /2MergeS原创 2021-05-18 23:22:08 · 834 阅读 · 0 评论 -
分治法
分治法分治法的基本思想将原始问题划分或归结为规模较小的子问题递归或迭代求解每个子问题将子问题的解综合得到原问题的注:子问题与原始问题完全一样子问题之间可彼此独立的求解递归停止时,子问题可直接求解算法设计思想将原问题归结为规模为 n - 1 的2个子问题继续归约,将问题归结为规模为 n - 2 的4个子问题,继续…当子问题规模为1时,归约过程截止从规模 1 到 n - 1 ,陆续组合两个子问题的解,直到规模为n分治算法的一般性描述Divide(P)if |P| <=原创 2021-05-18 10:36:50 · 153 阅读 · 3 评论