算法
TinyWu369
无他,惟手熟尔
展开
-
分治算法(一)二分搜索技术
分治算法的本质就是将一个大规模的问题分解为若干个小规模的相同子问题,分而治之。1.分治算法简述1.1分治算法也有它的适用条件,满足以下3个条件,才能使用分治法来解决:(1)原问题可分解为若干个规模较小的相同子问题(2)子问题相互独立(3)子问题的解可以合并为原问题的解1.2使用分治法解题的步骤:(1)分解:将要解决的问题分解为若干个规模较小、相互独立、与原问题形式相同的子问题。(2...原创 2019-01-05 13:04:08 · 5809 阅读 · 0 评论 -
分治算法(二)合并排序
1.问题分析合并排序问题给定的是一个无序的序列,可以把待排序的元素分解为两个规模大致相等的子序列。如果还是不容易解决就继续将子序列分解,直到子序列中的元素个数为1,因为单个元素的序列本身是有序的,此时便可以进行合并,从而得到一个完整的有序序列。2.算法设计(1)分解:将待排序元素分成大小大致相同的两个子序列。(2)治理:对两个子序列进行合并。(3)合并:将排好序的有序子序列进行合并,得到...原创 2019-01-15 13:37:02 · 580 阅读 · 0 评论 -
分治算法(三)快速排序
1.快速排序的思想(1)分解:先从数列中取出一个元素作为基准元素,以基准元素为标准,将问题分解为两个子序列,使小于或等于基准元素的子序列位于左侧,使大于基准元素的子序列位于右侧。(2)治理:对两个子序列分别递归调用快速排序。(3)合并:将拍好序的两个子序列合并在一起,得到原问题的解。上一篇的合并排序又叫归并排序,它每次从中间位置把问题一分为二,一直划分到不能再分为止,然后执行合并操作。合并...原创 2019-01-16 15:47:27 · 286 阅读 · 0 评论