![](https://img-blog.csdnimg.cn/20190927151132530.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
分治法
有关分治法的博客
海岛Blog
专注于程序设计及其竞赛,专注于集成电路EDA设计
展开
-
快速排序(分治法)
原始数据使用随机函数生成。采用结构化程序设计,可以很容易改为从标准输入或文件读入数据,只需要修改函数getData即可。数据个数由宏定义给出,也可以轻松地改为输入。快速排序程序中,根据选定的基元(程序中是第一个元素),划分部分的逻辑比较复杂一些。在概率均等的前提下,基元选哪个元素都是一样的。/* * * 快速排序算法程序 * */#include #include原创 2016-04-15 13:47:01 · 1870 阅读 · 0 评论 -
归并排序(分治法)
原始数据使用随机函数生成。 采用结构化程序设计,可以很容易改为从标准输入或文件读入数据,只需要修改函数getData即可。 数据个数由宏定义给出,也可以轻松地改为输入。排序时需要一个与数据规模相等的辅助存储。/* * * 归并排序算法程序 * */#include #include#include //#define DEBUG#define N 7void原创 2016-04-17 11:03:04 · 927 阅读 · 0 评论 -
折半查找(分治法)
折半查找也称为二分查找,是一个经典的查找算法。原始数据使用随机函数生成。采用结构化程序设计,可以很容易改为从标准输入或文件读入数据,只需要修改函数getData即可。数据个数由宏定义给出,也可以轻松地改为输入。使用快速排序算法对原始数据进行排序。/* * 折半查找算法程序(测试数据使用快速算法进行排序) * 这里包括递归算法和非递归算法 */#include #原创 2016-04-21 15:25:59 · 2513 阅读 · 0 评论 -
计算最大值和最小值(分治法)
分治法计算最大值和最小值,是一个经典的算法程序。原始数据使用随机函数生成。采用结构化程序设计,可以很容易改为从标准输入或文件读入数据,只需要修改函数getData即可。数据个数由宏定义给出,也可以轻松地改为输入。/* * 求最大和最小值 * 这里包括经典的算法和分治算法的实现 */#include #include #include #define N 7原创 2016-04-21 12:17:59 · 11219 阅读 · 0 评论 -
计算最大子段(分治法)
这个程序使用分治法计算最大子段,用递归程序实现。原始数据使用随机函数生成。采用结构化程序设计,可以很容易改为从标准输入或文件读入数据,只需要修改函数getData即可。数据个数由宏定义给出,也可以轻松地改为输入。/* * 最大子段算法程序 */#include #include #include #define N 13void getData(int []原创 2016-04-22 12:44:00 · 1960 阅读 · 0 评论 -
选择问题(第k小元素)(分治法)
Selection algorithm选择问题即第k小元素问题。解决该问题的基本思想与快速排序算法相同,通过选择基元进行划分,从而知道第k小元素在哪里。原始数据使用随机函数生成。采用结构化程序设计,可以很容易改为从标准输入或文件读入数据,只需要修改函数getData即可。数据个数由宏定义给出,也可以轻松地改为输入。算法有递归与非递归两种过程,非递归过程是正解。/原创 2016-04-22 07:22:00 · 13464 阅读 · 1 评论