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

并查集

指数 并查集

在计算机科学中,并查集是一种树型的数据结构,用于处理一些不交集(Disjoint Sets)的合并及查询问题。有一个联合-查找算法(union-find algorithm)定义了两个用于此数据结构的操作:.

10 关系: 不交集帕斯卡 (消歧義)平摊分析引用C计算机科学阿克曼函數Kruskal算法树 (数据结构)数据结构

不交集

在數學裡,兩個集合被稱為不交(disjoint),若其沒有共同的元素。例如,和為不交集(disjoint sets)。.

新!!: 并查集和不交集 · 查看更多 »

帕斯卡 (消歧義)

帕斯卡(Pascal),抑或帕斯卡爾,可能指:.

新!!: 并查集和帕斯卡 (消歧義) · 查看更多 »

平摊分析

在计算机科学中,特别是算法分析中,平摊分析寻找在最坏情况下的操作序列中每操作的平均耗费时间。平摊分析只保证最坏情况性能的每次操作耗费时间,不涉及平均情况性能。 这个方法需要知道操作序列中可能发生的每个操作。通常应用在操作间存在状态的数据结构中。基本思想是一个最坏情况操作会改变状态从而不会在一段时间内再次出现,因此「平摊」它的耗费。 一个简单的例子,在某个特定实现的动态数组中,我们在每次数组溢出时增长数组的长度至原来的两倍。因此需要数组空间分配,在最坏情况下一个插入操作需要O(n)的时间。但是,一个 n 个插入的操作序列仍然可以在 O(n) 的时间内完成,因为剩下的插入可以在常数时间内完成,因此n 个插入可以在 O(n) 的时间内完成。因此每操作的平摊耗费为O(n) / n.

新!!: 并查集和平摊分析 · 查看更多 »

引用

引用是修辭手法的一種,援用名人的話,或名人的事、物、詩文、典故、寓言、成語、俗語、格言、諺語等,來支持作者的立場,以達到證明和加強自己所說的理論,讓文章的內容更為充實。引用是一種訴諸權威或大眾的修辭法。利用一般人對於權威的崇拜及大眾意見的尊重,以藉此加強言論的真實性、說理性、表現力及說服力,藉此收到言簡意賅的表達效果。除此之外,引用修辭還有節省文辭的功能,因為引用前人千錘百鍊的文字,或大家比較熟悉的名言,勝過自己用十倍篇幅所能表達言論的效果。引用修辭依內容來源的出處分類,可以分為明引和暗引兩種。.

新!!: 并查集和引用 · 查看更多 »

C

C,c是拉丁字母中的第3个字母。在伊特鲁里亚语中,爆破辅音没有明显的发音,所以他们把希腊语中的Γ, γ(Gamma)来书写他们的/k/。开始的时候,罗马人同时使用它来书写/k/和/g/,后来在它的右中部加了一横杠变成G。可能在更早的时候,只有/g/,而用K表示/k/。 一些学者表示,闪族语的ג是骆驼的图形。/k/在拉丁语中发展成上腭音和软腭音音位变体,这可能是由于伊特鲁里亚语的影响。因此,今天的C有很多不同的音值:在法语和西班牙语中为:和,在意大利中的和(像英语中的CH)等等。.

新!!: 并查集和C · 查看更多 »

计算机科学

计算机科学用于解决信息与计算的理论基础,以及实现和应用它们的实用技术。 计算机科学(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,这两个领域在某些学科,例如数理逻辑、范畴论、域理论和代数,也不断有有益的思想交流。.

新!!: 并查集和计算机科学 · 查看更多 »

阿克曼函數

阿克曼函數是非原始递归函数的例子;它需要兩個自然數作為輸入值,輸出一個自然數。它的輸出值增長速度非常高。.

新!!: 并查集和阿克曼函數 · 查看更多 »

Kruskal算法

#重定向 克鲁斯克尔演算法.

新!!: 并查集和Kruskal算法 · 查看更多 »

树 (数据结构)

在計算機科學中,樹(tree)是一种抽象数据类型(ADT)或是實作這種抽象数据类型的数据结构,用來模擬具有樹狀結構性質的数据集合。它是由n(n>0)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:.

新!!: 并查集和树 (数据结构) · 查看更多 »

数据结构

在计算机科学中,数据结构(data structure)是计算机中存储、组织数据的方式。 数据结构意味着介面或封装:一个数据结构可被视为两个函数之间的介面,或者是由数据类型联合组成的存储内容的访问方法封装。 大多数数据结构都由数列、记录、可辨识联合、引用等基本类型构成。举例而言,可為空的引用(nullable reference)是引用与可辨识联合的结合体,而最简单的链式结构链表则是由记录与可空引用构成。 数据结构可透过程式语言所提供的数据类型、引用及其他操作加以实现。一个设计良好的数据结构,应该在尽可能使用较少的时间与空间资源的前提下,支援各種程式執行。 不同种类的数据结构适合不同种类的应用,部分資料結構甚至是為了解決特定問題而設計出來的。例如B树即為加快樹狀結構存取速度而設計的資料結構,常被應用在資料庫和檔案系統上。 正確的数据结构選擇可以提高演算法的效率(請參考)。在電腦程式设计的過程裡,选择适当的数据结构是一項重要工作。许多大型系统的編寫经验顯示,程式設計的困难程度与最终成果的质量与表现,取决于是否选择了最適合的数据结构。 系統架構的关键因素是数据结构而非算法的見解,导致了多种形式化的设计方法与编程语言的出现。绝大多数的语言都带有某种程度上的模块化思想,透过将数据结构的具体实现封装隐藏于使用者介面之后的方法,来让不同的应用程序能够安全地重用这些数据结构。C++、Java、Python等面向对象的编程语言可使用类 (计算机科学)来達到這個目的。 因为数据结构概念的普及,现代编程语言及其API中都包含了多种預設的数据结构,例如 C++ 标准模板库中的容器、Java集合框架以及微软的.NET Framework。.

新!!: 并查集和数据结构 · 查看更多 »

传出传入
嘿!我们在Facebook上吧! »