算法的效率
效率是速度和空间消耗的度量。集中考虑程序的速度,也称运行时间或执行时间,用复杂度的阶(O)这一标准来衡量。空间的消耗或需求也可以用大O表示,而且它总是小于或等于时间需求。
以下是我的学习笔记:
1.求值与霍纳法则,即为秦九韶公式。
2.测定运行时间的最可靠方法是计数对运行时间有贡献的基本操作的执行次数。运行时间与这个计数成正比。
3.在分析程序的运行时间时,重要的是把程序看成算法,即独立于实现它的程序设计语言的一系列步骤。
4.一般地,算法是由多个基本操作组成的。有时我们计数所有的基本操作,而有时计数一个主导操作。
5.需要在算法的运行时间与它所操作的输入的规模之间建立关系。
6.需要观察不同的输入规模下的运行状况。特别需要作为输入规模的函数的比较次数。
7.在分析一个算法的运行时间时,重要的是把基本操作的数量与输入规模关联起来,即基本操作的数量必须表示成输入规模的函数。
8.函数的渐近增长:给定两个函数f(n)和g(n),如果存在一个整数N,使得对于所有的n>N,f(n)总是比g(n)大,那么,说f(n)的增长渐近快于g(n)。
9.大O:给定两个函数f(n)和g(n),f(n)=O(g(n))当且仅当存在一个常数c使得c*g(n)的增长渐近快于f(n)。
10.常数阶O(1):表示运行时间与输入规模无关。实例:访问数组中第i项的操作的运行时间
11.线性阶O(n):实例:在有n个值的数组中寻求最大(或最小)值的算法。
12.二次阶:实例:简单的多项式求值方案、选择排序算法。
13.对数阶(关于二叉搜索算法)、nlogn阶(某些排序算法)、三次阶。
14.指数阶:O(k^n),其中k是某个与输入规模n无关的常数,一般在解决特殊问题中探索“所有可能选择”(应用穷举)的算法中最常遇到。实例:给定n个整数,我们希望知道是否存在这些整数的一个子集,使得这个子集中的整数之和等于另一个给定整数K。
15.如果x比y增长得慢,那么x超前于y,用“<”表示,有如下顺序:1<logn<n^(1/2)<nlogn<n^(3/2)<n^2<n^3<k^n。
16.阶函数中的变量:对于出现在算法输入规模中的每一个变量,算法的运行时间的阶函数中至多有一项包含该变量。
17.通常,运行时间从最好情况运行时间到平均情况运行时间,再到最坏情况运行时间不断升级。
18.通常,除非特别指定,运行时间就是最坏情况运行时间。
19.通常,使用“时间复杂度”指运行时间需求,并使用“空间复杂度”指空间需求。当不用限定词地使用“复杂度”时,他们通常指时间复杂度。另外,如果他们没有特指平均情况或最坏情况,一般指的是最坏情况。
20.一个算法的空间需求总是小于或等于它的时间需求。
相关推荐
分析和计算算法效率的便捷方法 (杨朝霞兰州交通大学数理与软件工程学院,甘肃兰州 730070) : 摘 要: 通过对典型算法时间效率特征的分析,将求解算法时间复杂度的复杂过程进行简化,提出按算法的不同结构特性,具体问题...
《算法效率与数据结构的选择》一文探讨了在程序设计中如何通过选择合适的数据结构来提升算法效率。算法和数据结构是程序设计的两大支柱,它们相辅相成。正确选择数据结构对于优化算法至关重要,因为算法的实现往往...
算法设计与分析课件-第二章 算法效率分析基础 本章节主要介绍算法效率分析的基础知识,包括算法效率的定义、时间效率和空间效率的度量、分析框架、渐进符号和基本效率类型等。 一、算法效率的定义 一个问题往往有...
总的来说,这个课程设计是一个很好的实践平台,它让学习者亲身体验到算法效率的差异,并通过实际操作理解线性搜索和二叉搜索的优劣。通过比较不同N值下的运行时间,可以直观地看到算法效率随数据规模增长的变化趋势...
各种排序算法效率分析比较及源代码 C语言实现 各种排序包括: 直接插入排序,折半插入排序,2—路插入排序和表插入排序;希尔排序和链式基数排序;起泡排序,快速排序,归并排序;简单选择排序,树形选择排序和堆...
第四课:算法效率的度量和存储空间需求 第五课:线性表的类型定义 第六课:线性表的顺序表示和实现 第七课:实验一 线性表的顺序存储实验 第八课:线性表的链式表示与实现 第九课:循环链表与双向链表 第十课...
各种内部排序算法的时间复杂度分析结果只给出了算法执行的时间的阶,或大概执行时间。设计和实现内部排序算法效率比较平台,通过随机的数据比较各算法的关键字比较次数和关键字移动次数,以取得直观的感受。
要求完成在正序、逆序、小规模数据量(10、30、50)和大规模数据量(100、1000、10000等)情况下以移动次数和比较次数来分析算法效率。 几种内部排序算法在进行时间复杂度分析的时候给出了算法执行的大概执行时间。...
【算法设计与实现-绪论与算法效率分析】 在计算机科学中,算法是解决问题的关键,它们是计算的灵魂,触及到科学、商业和技术的各个领域。算法设计与分析是一门核心课程,旨在帮助学习者理解如何有效地解决问题并...
搜索算法效率比较 在计算机科学与技术专业 kurs 设计中,搜索算法效率比较是一个非常重要的课题。本文将从设计报告的角度,介绍搜索算法效率比较的设计思路、设计内容、设计分析、设计实践和测试方法等方面的知识点...
"算法效率分析基础" 这篇 ppt 介绍了算法效率分析的基础知识,包括算法效率的度量、函数的渐进的界、算法的基本复杂性类型、算法复杂性分析的基本方法、非递归算法的复杂性分析、递归算法的复杂性分析、递归算法与...
"算法效率分析基础" 本章节讲解了算法效率分析的基础知识,涵盖了问题的规模、基本操作、计算复杂度、复杂度的量级、上下界等概念,并对循环算法与递归算法的复杂度分析方法进行了介绍。 一、问题的规模 算法效率...
搜索算法效率比较 搜索算法效率比较是计算机科学与技术专业的设计课程报告,旨在比较不同的搜索算法的效率。该报告从设计题目、设计目的及要求、设计内容、设计分析、设计实践、测试方法等方面对搜索算法效率进行了...
老师的课件,比较好懂容易,只花费1个资源分
本文针对目前提出的匹配算法效率分析方法存在的匹配次数差异大、分析内存占用率高的问题,基于大数据处理技术,提出了一种新的模式匹配算法效率分析方法,并通过实验验证了该方法的有效性。 首先,文章指出现有的...
算法效率分析基础 算法效率分析是对一个算法需要多少计算时间和存储空间作定量的分析。时间是非常重要的,不是所有能计算的都有价值,不是所有有价值的都能被计算。这章节将介绍算法效率分析的基础知识,包括算法...
本文将探讨在程序设计中如何通过选择合适的数据结构来优化算法效率,以解决实际问题。 在程序设计实践中,算法效率是衡量程序性能的重要指标之一。算法效率通常指的是算法在执行任务时所需的资源,如时间复杂度和...
在计算机科学中,算法效率分析是评估算法性能的关键手段。本讲义主要探讨了如何评价算法的效率,包括时间效率和空间效率,并介绍了相关概念和分析框架。 首先,评价一个算法要考虑以下几个方面:正确性(算法是否能...
《排序算法效率分析——动态显示排序过程》 在信息技术领域,排序算法是计算机科学的基础,其性能直接影响到程序的运行效率。本软件是由资深算法研究者精心编写的,旨在通过动态展示排序算法的过程,帮助用户深入...
【算法效率】是计算机科学中的核心概念,它关乎到程序执行的效率和资源消耗。算法是解决问题的具体步骤集合,可以通过自然语言、程序设计语言、类程序设计语言或流程图等多种方式来描述。一个有效的算法必须具备五个...