- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机算法复习题
算法概述
算法必须具备的四个性质:
输入: 有零个或多个由外部提供的量作为算法的输入
输出: 算法产生至少一个量作为输出.
确定性: 组成算法的每条指令是清晰的,无歧义的.
有限性: 在执行了有穷步骤后运算终止(程序则可以不满足此条性质,如操作系统,无限循环)
写出算法复杂性的渐近性态的数学表达式:
(能写出上阶函数即可)如:
算法的复杂性分为:时间复杂性 需要时间资源的量;空间复杂性 需要的空间资源的量
程序所需要的空间主要由指令空间,数据空间,环境栈空间构成:
会分析程序段的时间复杂度
一次冒泡
A、templateclass T
void Bubble(T a[ ], int n)
{// 计算a[0:n-1]中最大的元素通过冒泡移到右边
for( int i =1;in; i++)
if( a[i]a[i+1]) swap(a[i], a[i+1]);
}
B、templateclass T
void BubbleSort(T a[ ], int n)
{// 计算a[0:n-1]中的n个元素通过冒泡排序
for( int i =n;i1; i--)
Bubble(a,i);
}
第二章 递归与分治策略
递归的概念(根据递归公式,能写出递归算法)
如:
递归函数如下:
A、int Factorial(int n)
{
if (n==0) return 1;
return n*Factorial(n-1);
}
B、
递归概念:一个直接或间接地调用自身的算法称为递归算法;一个使用函数自身给出定义的函数称为递归函数
递归缺点:消耗时间空间多 优点:容易实现理解
递归小结
优点:结构清晰,可读性强,而且容易用数学归纳法来证明算法的正确性,因此它为设计算法、调试程序带来很大方便。
缺点:递归算法的运行效率较低,无论是耗费的计算时间还是占用的存储空间都比非递归算法要多。
2、分治法
分治法的基本思想是讲一个规模为N的问题分解成K个规模较小的子问题,这些子问题互相独立且与原问题相同。递归的解这些子问题,然后将子问题的解合并得到原问题的解。
二分搜索方法的基本算法描述和基本思想
基本思想:
二分搜搜索的基本思想是将N个元素分成个数大致相同的两半,去a【n/2】与x作比较,如果x=a【n/2】,则找到了x,算法中止。如果小于,则只要在数组的a的左半部继续搜索x;如果大于,则只要在数组a的右半部继续搜索x
二分搜索算法
templateclass T
int BinarySearch( T a[], const T x, int n)
{//在a[0]=a[1]=···=a[n-1]中搜索x
//如果找到,则返回所在位置,否则返回 –1
int left= ; int right= ;
while( ){
int middle= ;
if(x==a[middle]) return middle;
if(xa[middle]) left= ;
else right= ;
}
return –1; //未找到x
}
合并排序的具体算法和基本思想:
合并排序算法是用分治法的策略实现对N个元素进行排序的算法。基本思想是:将待排序元素分成大小大致相同的两个子集,分别对两个子集进行排序,最终将排好序的子集合合并成所要求的排好序的集合。
合并排序的算法
templateclass Type
void MergeSort(Type a[ ], int left, int right)
{// A[left:right]是一个全程数组,含有 right-left+1个待排序的元素。
if ( leftright ) { //至少有2个元素
int mid = (left+right)/2; //求当前数组的分割点
MergeSort(a,left, mid);
MergeSort(a,mid+1, right);
Merge(a,b,left, mid ,right);
copy(a,b,left,right);
}
}
合并函数
template class Type
void Merge(
您可能关注的文档
- 节水型学校主要做法.doc
- 节能分部验收监理评估报告.doc
- 节能技术服务与合同能源管理.docx
- 节能技术轻松复习1.doc
- 节能改造方式与结算.doc
- 节能改造模式.doc
- 船体结构产品模型建模.doc
- 节能减排知识竞赛资料1.doc
- 节能灯修理知识.doc
- 节能灯到底省不省钱.doc
- 数学建模基础知到智慧树期末考试答案题库2024年秋吉林财经大学.docx
- 数字电子技术(山东联盟-中国石油大学(华东))知到智慧树期末考试答案题库2024年秋中国石油大学(华东).docx
- 数字信号处理(英文)知到智慧树期末考试答案题库2024年秋西北工业大学.docx
- 数学文化知到智慧树期末考试答案题库2024年秋中国石油大学(华东).docx
- 数字素养知到智慧树期末考试答案题库2024年秋青岛港湾职业技术学院.docx
- 数字电子技术知到智慧树期末考试答案题库2024年秋哈尔滨工程大学.docx
- 数学物理方法知到智慧树期末考试答案题库2024年秋西北工业大学.docx
- 冷库安全管理规定.pdf
- 关于网球比赛的方案(通用7篇).pdf
- 初步设计文件编制深度规定.pdf
文档评论(0)