![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算机算法设计与分析
可一z可再
这个作者很懒,什么都没留下…
展开
-
计算机算法设计与分析——复习题
1.快速排序例题:对数组A={15,29,135,18,32,1,27,25,5},用快速排序方法将其排成递增序列。简要回答快速排序的思想和上述数组的排序过程。基本思想 在待排序的n个元素中任取一个元素(通常取第一个元素)作为基准,把该元素放入最终位置后,整个数据序列被基准分割成两个子序列,所有小于基准的元素放置在前子序列中,所有大于基准的元素放置在后子序列中,并把基准排在这两个子序列的中...原创 2020-12-20 22:31:37 · 2060 阅读 · 0 评论 -
计算机算法设计与分析——回溯法
回溯法的算法框架1.非递归回溯框架int x[n];//x存放解向量,全局变量void backtrack(int n)//非递归框架{ int i = 1;//根结点层次为1 while (i >= 1)//尚未回溯到头 { if (ExistSubNode(t))//当前结点存在子结点 { for (j = 下界; j <= 上界; j++)//对于子集...原创 2019-11-17 22:23:43 · 337 阅读 · 0 评论 -
计算机算法设计与分析——蛮力法
蛮力法所依赖的基本技术是遍历技术,采用一定的策略将待求解问题的所有元素依次处理一次,从而找到问题的解。大问题:f(i,n)用于添加i~n整数(共添加n-i+1个整数)产生的幂集ps。小问题:f(i+1,n)用于添加i+1~n整数(共添加n-i个整数)产生的幂集ps。f(1,n)就是生成1~n的整数集合对应的幂集ps。f(i,n,p)=输出幂集p 当i>n时f(i,n,p)=将整数i...原创 2020-12-20 22:31:51 · 445 阅读 · 0 评论 -
计算机算法设计与分析——求解全排列问题(C++)
【问题描述】对于给定的正整数n(n>=1),求1~n的所有全排列。【问题求解】【算法实现(C++)】void Insert(vector<int> s, int i, vector<vector<int>>&ps1)//在每个集合元素中间插入i得到ps1{ vector<int> s1; vector<int&g...原创 2020-01-06 17:13:32 · 647 阅读 · 0 评论 -
计算机算法设计与分析——求解循环日程安排问题
【问题描述】设有n=2^k个选手要进行网球循环赛,要求设计一个满足以下要求的比赛日程表:(1)每个选手必须与其他n-1个选手各赛一次。(2)每个选手一天只能赛一次。(3)循环赛在n-1天之内结束。【问题分析】将n=2k问题划分为4部分:(1)左上角:左上角为2k-1个选手在前半程的比赛日程(k=1时直接给出,否则,上一轮求出的就是2k-1个选手的比赛日程)。(2)左下角:左下角为...原创 2020-01-06 17:13:14 · 1152 阅读 · 0 评论 -
计算机算法设计与分析——排序(递归算法)
1.简单选择排序基本思想:每一趟在n-i+1(i=1,2,…,n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。具体来说,假设长度为n的数组arr,要按照从小到大排序,那么先从n个数字中找到最小值min1,如果最小值min1的位置不在数组的最左端(也就是min1不等于arr[0]),则将最小值min1和arr[0]交换,接着在剩下的n-1个数字中找到最小值min2,如果最小值min2...原创 2020-01-06 17:10:41 · 450 阅读 · 0 评论 -
计算机算法设计与分析——求解查找问题
1.查找最大和次大元素【问题描述】对于给定的含有n元素的无序排列,求这个序列中最大和次大的两个不同的元素。例如:(2,5,1,4,6,3),最大元素是6,次大元素是5.【问题求解】对于无序序列a[low.high]中,采取分治法求最大元素max1和次大元素max2的过程如下:(1)a[low.high]中只有一个元素:则max1=a[low],max2=-INF(-∞)。(要求它们是不同的...原创 2020-01-06 17:14:27 · 661 阅读 · 0 评论 -
计算机算法设计与分析——求解棋盘覆盖问题
【问题描述】在一个由2^k * 2^k(k>0)的棋盘,恰有一个方格与其它方格不同,称该方格为特殊方格。现在要用如下的L型骨牌覆盖除了特殊方格外的其他全部方格,骨牌可以任意旋转,并且任何两个骨牌不能重叠。请给出一种覆盖方法。【问题求解】棋盘中的方格数=2^k * 2k=4k,覆盖使用的L型骨牌个数=(4^k-1)/3。采用的方法是:将棋盘划分为4个大小相同的4个象限,根据特殊方格的...原创 2020-01-06 17:13:52 · 592 阅读 · 0 评论