
计算机算法设计与分析
可一z可再
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
计算机算法设计与分析——复习题
1.快速排序 例题:对数组A={15,29,135,18,32,1,27,25,5},用快速排序方法将其排成递增序列。简要回答快速排序的思想和上述数组的排序过程。 基本思想 在待排序的n个元素中任取一个元素(通常取第一个元素)作为基准,把该元素放入最终位置后,整个数据序列被基准分割成两个子序列,所有小于基准的元素放置在前子序列中,所有大于基准的元素放置在后子序列中,并把基准排在这两个子序列的中...原创 2020-12-20 22:31:37 · 2330 阅读 · 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 · 399 阅读 · 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 · 535 阅读 · 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 · 720 阅读 · 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 · 1297 阅读 · 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 · 513 阅读 · 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 · 730 阅读 · 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 · 691 阅读 · 0 评论