徽标
联盟百科
通讯
下载应用,请到 Google Play
新! 在您的Android™设备上下载联盟百科!
自由
比浏览器更快的访问!
 

算法分析和计算机科学

快捷方式: 差异相似杰卡德相似系数参考

算法分析和计算机科学之间的区别

算法分析 vs. 计算机科学

在计算机科学中,算法分析(Analysis of algorithm)是分析执行一个给定算法需要消耗的计算资源数量(例如计算时间,存储器使用等)的过程。算法的效率或复杂度在理论上表示为一个函数。其定义域是输入数据的长度(通常考虑任意大的输入,没有上界),值域通常是执行步骤数量(时间复杂度)或者存储器位置数量(空间复杂度)。算法分析是计算复杂度理论的重要组成部分。 理论分析常常利用渐近分析估计一个算法的复杂度,并使用大O符号、大Ω符号和大Θ符号作为标记。举例,二分查找所需的执行步骤数量与查找列表的长度之对数成正比,记为 O(\log n),简称为「对数时间」。通常使用渐近分析的原因是,同一算法的不同具体实现的效率可能有差别。但是,对于任何给定的算法,所有符合其设计者意图的实现,它们之间的性能差异应当仅仅是一个系数。 精确分析算法的效率有时也是可行的,但这样的分析通常需要一些与具体实现相关的假设,称为计算模型。计算模型可以用抽象机器来定义,比如图灵机。或者可以假设某些基本操作在单位时间内可完成。 假设二分查找的目标列表总共有 n 个元素。如果我们假设单次查找可以在一个时间单位内完成,那么至多只需要 \log n + 1 单位的时间就可以得到结果。这样的分析在有些场合非常重要。 算法分析在实际工作中是非常重要的,因为使用低效率的算法会显著降低系统性能。在对运行时间要求极高的场合,耗时太长的算法得到的结果可能是过期或者无用的。低效率算法也会大量消耗计算资源。. 计算机科学用于解决信息与计算的理论基础,以及实现和应用它们的实用技术。 计算机科学(computer science,有时缩写为CS)是系统性研究信息与计算的理论基础以及它们在计算机系统中如何与应用的实用技术的学科。 它通常被形容为对那些创造、描述以及转换信息的算法处理的系统研究。计算机科学包含很多分支领域;有些强调特定结果的计算,比如计算机图形学;而有些是探討计算问题的性质,比如计算复杂性理论;还有一些领域專注于怎样实现计算,比如程式語言理論是研究描述计算的方法,而程式设计是应用特定的程式語言解决特定的计算问题,人机交互则是專注于怎样使计算机和计算变得有用、好用,以及随时随地为人所用。 有时公众会误以为计算机科学就是解决计算机问题的事业(比如信息技术),或者只是与使用计算机的经验有关,如玩游戏、上网或者文字处理。其实计算机科学所关注的,不仅仅是去理解实现类似游戏、浏览器这些软件的程序的性质,更要通过现有的知识创造新的程序或者改进已有的程序。 尽管计算机科学(computer science)的名字里包含计算机这几个字,但实际上计算机科学相当数量的领域都不涉及计算机本身的研究。因此,一些新的名字被提议出来。某些重点大学的院系倾向于术语计算科学(computing science),以精确强调两者之间的不同。丹麦科学家Peter Naur建议使用术语"datalogy",以反映这一事实,即科学学科是围绕着数据和数据处理,而不一定要涉及计算机。第一个使用这个术语的科学机构是哥本哈根大学Datalogy学院,该学院成立于1969年,Peter Naur便是第一任教授。这个术语主要被用于北欧国家。同时,在计算技术发展初期,《ACM通讯》建议了一些针对计算领域从业人员的术语:turingineer,turologist,flow-charts-man,applied meta-mathematician及applied epistemologist。 三个月后在同样的期刊上,comptologist被提出,第二年又变成了hypologist。 术语computics也曾经被提议过。在欧洲大陆,起源于信息(information)和数学或者自动(automatic)的名字比起源于计算机或者计算(computation)更常见,如informatique(法语),Informatik(德语),informatika(斯拉夫语族)。 著名计算机科学家Edsger Dijkstra曾经指出:“计算机科学并不只是关于计算机,就像天文学并不只是关于望远镜一样。”("Computer science is no more about computers than astronomy is about telescopes.")设计、部署计算机和计算机系统通常被认为是非计算机科学学科的领域。例如,研究计算机硬件被看作是计算机工程的一部分,而对于商业计算机系统的研究和部署被称为信息技术或者信息系统。然而,现如今也越来越多地融合了各类计算机相关学科的思想。计算机科学研究也经常与其它学科交叉,比如心理学,认知科学,语言学,数学,物理学,统计学和经济学。 计算机科学被认为比其它科学学科与数学的联系更加密切,一些观察者说计算就是一门数学科学。 早期计算机科学受数学研究成果的影响很大,如Kurt Gödel和Alan Turing,这两个领域在某些学科,例如数理逻辑、范畴论、域理论和代数,也不断有有益的思想交流。.

之间算法分析和计算机科学相似

算法分析和计算机科学有(在联盟百科)9共同点: 劍橋大學出版社密码学算法编程语言計算複雜性理論计算模型量子计算机電子計算機数值分析

劍橋大學出版社

劍橋大學出版社(Cambridge University Press)隸屬於英國劍橋大學,成立於1534年,是世界上僅次於牛津大學出版社的第二大大學出版社。.

劍橋大學出版社和算法分析 · 劍橋大學出版社和计算机科学 · 查看更多 »

密码学

密碼學(Cryptography)可分为古典密码学和现代密码学。在西欧語文中,密码学一词源於希臘語kryptós“隱藏的”,和gráphein“書寫”。古典密码学主要关注信息的保密书写和传递,以及与其相对应的破译方法。而现代密码学不只关注信息保密问题,还同时涉及信息完整性验证(消息验证码)、信息发布的不可抵赖性(数字签名)、以及在分布式计算中产生的来源于内部和外部的攻击的所有信息安全问题。古典密码学与现代密码学的重要区别在于,古典密码学的编码和破译通常依赖于设计者和敌手的创造力与技巧,作为一种实用性艺术存在,并没有对于密码学原件的清晰定义。而现代密码学则起源于20世纪末出现的大量相关理论,这些理论使得现代密码学成为了一种可以系统而严格地学习的科学。 密码学是数学和计算机科学的分支,同时其原理大量涉及信息论。著名的密碼學者罗纳德·李维斯特解釋道:「密碼學是關於如何在敵人存在的環境中通訊」,自工程學的角度,這相當于密碼學與純數學的差异。密碼學的发展促進了计算机科学,特別是在於電腦與網路安全所使用的技術,如存取控制與資訊的機密性。密碼學已被應用在日常生活:包括自动柜员机的晶片卡、電腦使用者存取密碼、電子商務等等。.

密码学和算法分析 · 密码学和计算机科学 · 查看更多 »

算法

-- 算法(algorithm),在數學(算學)和電腦科學之中,為任何良定义的具體計算步驟的一个序列,常用於計算、和自動推理。精確而言,算法是一個表示爲有限長列表的。算法應包含清晰定義的指令用於計算函數。 算法中的指令描述的是一個計算,當其時能從一個初始狀態和初始輸入(可能爲空)開始,經過一系列有限而清晰定義的狀態最終產生輸出並停止於一個終態。一個狀態到另一個狀態的轉移不一定是確定的。隨機化算法在内的一些算法,包含了一些隨機輸入。 形式化算法的概念部分源自尝试解决希尔伯特提出的判定问题,並在其后尝试定义或者中成形。这些尝试包括库尔特·哥德尔、雅克·埃尔布朗和斯蒂芬·科尔·克莱尼分别于1930年、1934年和1935年提出的遞歸函數,阿隆佐·邱奇於1936年提出的λ演算,1936年的Formulation 1和艾倫·圖靈1937年提出的圖靈機。即使在當前,依然常有直覺想法難以定義爲形式化算法的情況。.

算法和算法分析 · 算法和计算机科学 · 查看更多 »

编程语言

编程语言(programming language),是用来定义计算机程序的形式語言。它是一种被标准化的交流技巧,用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。 最早的编程语言是在電腦發明之前產生的,當時是用來控制及自動演奏鋼琴的動作。在電腦領域已發明了上千不同的编程語言,而且每年仍有新的编程語言誕生。很多编程語言需要用指令方式說明計算的程序,而有些编程語言則屬於宣告式編程,說明需要的結果,而不說明如何計算。 编程语言的描述一般可以分為及語義。語法是說明編程語言中,哪些符號或文字的組合方式是正確的,語義則是對於編程的解釋。有些語言是用規格文件定義,例如C語言的規格文件也是ISO標準中一部份,2011年後的版本為ISO/IEC 9899:2011,而其他55語言(像Perl)有一份主要的文件,視為是。.

算法分析和编程语言 · 编程语言和计算机科学 · 查看更多 »

計算複雜性理論

计算复杂性理论(Computational complexity theory)是理论计算机科学和数学的一个分支,它致力于将可计算问题根据它们本身的复杂性分类,以及将这些类别联系起来。一个可计算问题被认为是一个原则上可以用计算机解决的问题,亦即这个问题可以用一系列机械的数学步骤解决,例如算法。 如果一个问题的求解需要相当多的资源(无论用什么算法),则被认为是难解的。计算复杂性理论通过引入数学计算模型来研究这些问题以及定量计算解决问题所需的资源(时间和空间),从而将资源的确定方法正式化了。其他复杂性测度同样被运用,比如通信量(应用于通信复杂性),电路中门的数量(应用于电路复杂性)以及中央处理器的数量(应用于并行计算)。计算复杂性理论的一个作用就是确定一个能或不能被计算机求解的问题的所具有的实际限制。 在理论计算机科学领域,与此相关的概念有算法分析和可计算性理论。两者之间一个关键的区别是前者致力于分析用一个确定的算法来求解一个问题所需的资源量,而后者则是在更广泛意义上研究用所有可能的算法来解决相同问题。更精确地说,它尝试将问题分成能或不能在现有的适当受限的资源条件下解决这两类。相应地,在现有资源条件下的限制正是区分计算复杂性理论和可计算性理论的一个重要指标:后者关心的是何种问题原则上可以用算法解决。.

算法分析和計算複雜性理論 · 計算複雜性理論和计算机科学 · 查看更多 »

计算模型

计算模型(computational model)是计算科学中的一个数学模型,它使用大量的計算資源来用计算机模拟研究一个复杂系统的行为。被研究的系统通常是一个复杂的非線性系统,这种系统不易取得简单、直观的解析解。相比于推导数学分析来解决问题,它是通过在计算机中调整系统参数并研究实验结果的差异来完成模型。模型的操作理论可以从这些实验来推断/推导。 常见的计算模型有天气预报模型、地球模拟器模型、飛行模擬器模型、分子蛋白质折叠模型和神经网络模型。.

算法分析和计算模型 · 计算机科学和计算模型 · 查看更多 »

量子计算机

量子计算机(quantum computer)是一种使用量子邏輯進行通用計算的設備。不同於电子计算机(或稱傳統電腦),量子計算用來存儲數據的對象是量子比特,它使用量子演算法來進行數據操作。马约拉纳费米子反粒子就是自己本身的属性,或许是令量子计算机的制造变成现实的一个关键。.

算法分析和量子计算机 · 计算机科学和量子计算机 · 查看更多 »

電子計算機

--,亦稱--,计算机是一种利用数字电子技术,根据一系列指令指示其自动执行任意算术或逻辑操作序列的设备。计算机遵循被称为“程序”的一般操作集的能力使他们能够执行极其广泛的任务。 计算机被用作各种工业和消费设备的控制系统。这包括简单的特定用途设备(如微波炉和遥控器)、工业设备(如工业机器人和计算机辅助设计),以及通用设备(如个人电脑和智能手机之类的移动设备)等。尽管计算机种类繁多,但根据图灵机理论,一部具有最基本功能的计算机,应当能够完成任何其它计算机能做的事情。因此,理论上从智能手机到超级计算机都应该可以完成同样的作业(不考虑时间和存储因素)。由于科技的飞速进步,下一代计算机总是在性能上能够显著地超过其前一代,这一现象有时被称作“摩尔定律”。通过互联网,计算机互相连接,极大地提高了信息交换速度,反过来推动了科技的发展。在21世纪的现在,计算机的应用已经涉及到方方面面,各行各业了。 自古以来,简单的手动设备——就像算盘——帮助人们进行计算。在工业革命初期,各式各样的机械的出现,其初衷都是为了自动完成冗长而乏味的任务,例如织机的编织图案。更复杂的机器在20世纪初出现,通过模拟电路进行复杂特定的计算。第一台数字电子计算机出现于二战期间。自那时以来,电脑的速度,功耗和多功能性不断增加。在现代,机械计算--机的应用已经完全被电子计算机所取代。 计算机在组成上形式不一,早期计算机的体积足有一间房屋的大小,而今天某些嵌入式计算机可能比一副扑克牌还小。当然,即使在今天依然有大量体积庞大的巨型计算机为特别的科学计算或面向大型组织的事务处理需求服务。比较小的,为个人应用而设计的称为微型计算机(Personal Computer,PC),在中國地區简称為「微机」。我們今天在日常使用“计算机”一词时通常也是指此,不过现在计算机最为普遍的应用形式却是嵌入式,嵌入式计算机通常相对简单、体积小,并被用来控制其它设备——无论是飞机、工业机器人还是数码相机。 同计算机相关的技术研究叫计算--机科学,而「计算机技术」指的是将计算--机科学的成果应用于工程实践所派生的诸多技术性和经验性成果的总合。「计算机技术」与「计算机科学」是两个相关而又不同的概念,它们的不同在于前者偏重于实践而后者偏重于理论。至於由数据为核心的研究則称為信息技术。 传统上,现代计算机包括至少一个处理单元(通常是中央处理器(CPU))和某种形式的存储器。处理元件执行算术和逻辑运算,并且排序和控制单元可以响应于存储的信息改变操作的顺序。外围设备包括输入设备(键盘,鼠标,操纵杆等)、输出设备(显示器屏幕,打印机等)以及执行两种功能(例如触摸屏)的输入/输出设备。外围设备允许从外部来源检索信息,并使操作结果得以保存和检索。.

算法分析和電子計算機 · 计算机科学和電子計算機 · 查看更多 »

数值分析

数值分析(numerical analysis),是指在数学分析(区别于离散数学)问题中,对使用数值近似(相对于一般化的符号运算)算法的研究。 巴比伦泥板YBC 7289是关于数值分析的最早数学作品之一,它给出了 \sqrt 在六十进制下的一个数值逼近,\sqrt是一個邊長為1的正方形的對角線,在西元前1800年巴比倫人也已在巴比倫泥板上計算勾股數(畢氏三元數)(3, 4, 5),即直角三角形的三邊長比。 数值分析延續了實務上數學計算的傳統。巴比倫人利用巴比伦泥板計算\sqrt的近似值,而不是精確值。在許多實務的問題中,精確值往往無法求得,或是無法用有理數表示(如\sqrt)。数值分析的目的不在求出正確的答案,而是在其誤差在一合理範圍的條件下找到近似解。 在所有工程及科學的領域中都會用到数值分析。像天體力學研究中會用到常微分方程,最優化會用在资产组合管理中,數值線性代數是資料分析中重要的一部份,而隨機微分方程及馬可夫鏈是在醫藥或生物學中生物細胞模擬的基礎。 在電腦發明之前,数值分析主要是依靠大型的函數表及人工的內插法,但在二十世紀中被電腦的計算所取代。不過電腦的內插演算法仍然是数值分析軟體中重要的一部份。.

数值分析和算法分析 · 数值分析和计算机科学 · 查看更多 »

上面的列表回答下列问题

算法分析和计算机科学之间的比较

算法分析有44个关系,而计算机科学有136个。由于它们的共同之处9,杰卡德指数为5.00% = 9 / (44 + 136)。

参考

本文介绍算法分析和计算机科学之间的关系。要访问该信息提取每篇文章,请访问:

嘿!我们在Facebook上吧! »