Home About us Products Services Contact us Bookmark
:: wikimiki.org ::
计算机科学中,斐波纳契堆是最小堆有序树的集合。它和二项式堆有类似的性质。

结构

斐波纳契堆中的都是有根的但是无序。每个节点x包含指向父节点的指针p[x]和指向任意一个子结点的child[x]。x的所有子节点都用双向循环链表链接起来,叫做x的子链表。子链表中的每一个节点y都有指向它的左兄弟的left[y]和右兄弟的right[y]。如果节点yx仅有的子节点,则left[y]=right[y]=y

操作

建立一个新的斐波纳契堆

插入一个节点

查找最小的节点

合并两个斐波纳契堆

释放最小的节点

Category:數據結構

Hille (Westfalen)

Hille ist eine Gemeinde in Nordrhein-Westfalen, Deutschland, und gehört innerhalb des Regierungsbezirkes Detmold zum Kreis Minden-Lübbecke.

Geografie

Hille liegt im Norden der Region Ostwestfalen-Lippe, im Zentrum des Mindener Landes.

Ausdehnung des Stadtgebiets


- von Süd nach Nord 15,4 km
- von West nach Ost 11,8 km
- höchster Punkt - Wiehengebirge (Lübber Berg) in der Ortschaft Oberlübbe mit 251,0 m ü. NN
- niedrigster Punkt - Moor in der Ortschaft Hartum (Oberdamm) mit 45,7 m ü. NN

Nachbargemeinden


- Minden
- Espelkamp
- Petershagen
- Lübbecke
- Bad Oeynhausen
- Hüllhorst
- Samtgemeinde Uchte

Gemeindegliederung

Die Gebietsreform 1973 fasste 9 kleinere Gemeinden zur Großgemeinde Hille zusammen.
- Hille-Dorf
- Hartum
- Nordhemmern
- Holzhausen II
- Südhemmern
- Eickhorst
- Rothenuffeln
- Oberlübbe
- Unterlübbe

Geschichte

[http://www.hille.de/Gemeindeportrait/Geschichte.htm Geschichte der Gemeinde Hille]

Einwohnerentwicklung


- 1975 - 15036
- 1985 - 14959
- 1995 - 16559
- 2002 - 16813

Politik

Gemeinderat


- CDU - 15 Sitze
- SPD - 11 Sitze
- FDP - 3 Sitze
- FWG - 2 Sitze
- Grüne - 1 Sitz

Wappen

[http://www.hille.de/Gemeindeportrait/wappen.htm Wappen der Gemeinde Hille]

Kulinarische Spezialitäten

[http://www.wollbrink-spirituosen.de Hiller Moorbrand]

Wirtschaft und Infrastruktur

Verkehr

Durch das Gemeindegebiet verläuft die BundesstraßeB 65 von Minden nach Lübbecke. Daneben durchquert der Mittellandkanal Hille. Hille ist Endpunkt der Museumseisenbahn von Porta Westfalica-Kleinenbremen über Minden nach Hille-Kanalhafen.

Ansässige Unternehmen


- [http://www.priess-moebel.de Friedrich Priess GmbH & Co KG]
- [http://www.priess-horstmann.de/ Prieß, Horstmann & Co. Maschinenbau, GmbH & Co.KG]
- [http://www.buecker-edv.de R. Bücker EDV-Beratung Datentechnik GmbH]
- [http://www.uphoff-schlosserei.de UPHOFF Schlosserei GmbH]
- [http://www.eskate.de ESKATE Rohrverbindungstechnik GmbH]

Öffentliche Einrichtungen


- [http://www.drk-hille.de Deutsches Rotes Kreuz - Ortsverein Hille e.V.]
- [http://www.feuerwehr-hille.de Freiwillige Feuerwehr der Gemeinde Hille]
- [http://www.cvjm-hille.de CVJM Hille]
- [http://www.kirchengemeinde-hille.de Kirchengemeinde Hille]

Bildung


- [http://www.gesamtschule-hille.de Gesamtschule Hille]
- [http://www.Grundschule-Hille.de Grundschule Hille]
- [http://www.grundschule-oberluebbe.de Grundschule Oberlübbe]
- [http://www.schule-mindenerwald.de Schule für Erziehungshilfe des Kreises Minden-Lübbecke]

Söhne und Töchter der Stadt


- Abraham Jacobi, Vater der Kinderheilkunde

Weblinks


- [http://www.hille.de/ Website der Gemeinde Hille]
- [http://www.hilleonline.de/ Informationen über Hille] Kategorie:Ort in Nordrhein-Westfalen

spielautomaten Dorota Rabczewska konsultant slubny jastrzbia gra hotels in Krakow

Category:数据结构 Category:树结构 Category:堆计算机科学中,堆是一种特殊的数据结构,每个结点都有一个值。通常我们所说的堆的数据结构,是指二叉堆。堆的特点是根结点的值最小(或最大),且根结点的两个子树也是一个堆。 由于堆的这个特性,常用来实现优先队列,并用于一些图论算法中。 堆也用于排序算法,如堆排序

参见


- 二叉堆
- 二项式堆
- 斐波纳契堆
- 数据结构

Category:数据结构

Category:计算机科学基础理论计算机科学中,数据结构是在计算机中存储数据的方法,使数据能跟有效地使用。一般情况下,精心挑选的数据结构能产生有效的算法。在选择数据结构前必须选择一种抽象数据结构ja:Category:データ構造 ko:분류:자료구조

Category:堆

堆是一种特殊的数据结构,每个结点都有一个值。它的特点是根结点的值最小,且根结点的两个子树也是一个堆。 Category:数据结构 Category:图论

数据结构

算法+数据结构=程序
尼古拉斯·沃斯
数据结构(Data Structure)是计算机存储、组织数据的方式。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率的算法。数据结构往往同高效的检索算法索引技术有关。 在许多类型的程序的设计中,数据结构的选择是一个基本的设计考虑因素。许多大型系统的构造经验表明,系统实现的困难程度和系统构造的质量都严重的依赖于是否选择了最优的数据结构。许多时候,确定了数据结构后,算法就容易得到了。有些时候事情也会反过来,我们根据特定算法来选择数据结构与之适应。不论哪种情况,选择合适的数据结构都是非常重要的。 选择了数据结构,算法也随之确定,是数据而不是算法是系统构造的关键因素。这种洞见导致了许多种软件设计方法程序设计语言的出现,面向对象的程序设计语言就是其中之一。 在计算机科学中,数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象(数据元素)以及它们之间的关系和运算等的学科,而且确保经过这些运算后所得到的新结构仍然是原来的结构类型。 “数据结构”作为一门独立的课程在国外是从1968年才开始设立的。 1968年美国唐·欧·克努特教授开创了数据结构的最初体系,他所著的《计算机程序设计技巧》第一卷《基本算法》是第一本较系统地阐述数据的逻辑结构和存储结构及其操作的著作。“数据结构”在计算机科学中是一门综合性的专业基础课。数据结构是介于数学、计算机硬件和计算机软件三者之间的一门核心课程。数据结构这一门课的内容不仅是一般程序设计(特别是非数值性程序设计)的基础,而且是设计和实现编译程序、操作系统、数据库系统及其他系统程序的重要基础。 计算机是一门研究用计算机进行信息表示和处理的科学。这里面涉及到两个问题:
- 信息的表示
- 信息的处理 而信息的表示和组又直接关系到处理信息的程序的效率。随着计算机的普及,信息量的增加,信息范围的拓宽,使许多系统程序和应用程序的规模很大,结构又相当复杂。因此,为了编写出一个“好”的程序,必须分析待处理的对象的特征及各对象之间存在的关系,这就是数据结构这门课所要研究的问题。众所周知,计算机的程序是对信息进行加工处理。在大多数情况下,这些信息并不是没有组织,信息(数据)之间往往具有重要的结构关系,这就是数据结构的内容。数据的结构,直接影响算法的选择和效率。 计算机解决一个具体问题时,大致需要经过下列几个步骤:首先要从具体问题中抽象出一个适当的数学模型,然后设计一个解此数学模型的算法(Algorithm),最后编出程序、进行测试、调整直至得到最终解答。寻求数学模型的实质是分析问题,从中提取操作的对象,并找出这些操作对象之间含有的关系,然后用数学的语言加以描述。计算机算法与数据的结构密切相关,算法无不依附于具体的数据结构,数据结构直接关系到算法的选择和效率。运算是由计算机来完成,这就要设计相应的插入、删除和修改的算法 。也就是说,数据结构还需要给出每种结构类型所定义的各种运算的算法。 数据是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并由计算机程序处理的符号的总称。 数据元素是数据的基本单位,在计算机程序中通常作为一个整体考虑。一个数据元素由若干个数据项组成。数据项是数据的不可分割的最小单位。有两类数据元素:一类是不可分割的原子型数据元素,如:整数"5",字符 "N" 等;另一类是由多个款项构成的数据元素,其中每个款项被称为一个数据项。例如描述一个学生的信息的数据元素可由下列6个数据项组成。其中的出身日期又可以由三个数据项:"年"、"月"和"日"组成,则称"出身日期"为组合项,而其它不可分割的数据项为原子项。 关键字指的是能识别一个或多个数据元素的数据项。若能起唯一识别作用,则称之为 "主" 关键字,否则称之为 "次" 关键字。 数据对象是性质相同的数据元素的集合,是数据的一个子集。数据对象可以是有限的,也可以是无限的。 数据处理是指对数据进行查找、插入、删除、合并、排序、统计以及简单计算等的操作过程。在早期,计算机主要用于科学和工程计算,进入八十年代以后,计算机主要用于数据处理。据有关统计资料表明,现在计算机用于数据处理的时间比例达到80%以上,随着时间的推移和计算机应用的进一步普及,计算机用于数据处理的时间比例必将进一步增大。 数据结构是指同一数据元素类中各数据元素之间存在的关系。数据结构分别为逻辑结构存储结构物理结构)和数据的运算。数据的逻辑结构是对数据之间关系的描述,有时就把逻辑结构简称为数据结构。逻辑结构形式地定义为(K,R)(或(D,S)),其中,K是数据元素的有限集,R是K上的关系的有限集。 数据元素相互之间的关系称为结构。有四类基本结构:集合线性结构树形结构图状结构网状结构)。树形结构和图形结构全称为非线性结构。集合结构中的数据元素除了同属于一种类型外,别无其它关系。线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对多关系,图形结构中元素之间存在多对多关系。在图形结构中每个结点的前驱结点数和后续结点数可以任意多个。 数据结构在计算机中的表示(映像)称为数据的物理(存储)结构。它包括数据元素的表示和关系的表示。数据元素之间的关系有两种不同的表示方法:顺序映象和非顺序映象,并由此得到两种不同的存储结构:顺序存储结构和链式存储结构。顺序存储方法:它是把逻辑上相邻的结点存储在物理位置相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现,由此得到的存储表示称为顺序存储结构。顺序存储结构是一种最基本的存储表示方法,通常借助于程序设计语言中的数组来实现。链接存储方法:它不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系是由附加的指针字段表示的。由此得到的存储表示称为链式存储结构,链式存储结构通常借助于程序设计语言中的指针类型来实现。索引存储方法:除建立存储结点信息外,还建立附加的索引表来标识结点的地址。散列存储方法:就是根据结点的关键字直接计算出该结点的存储地址。 数据结构中,逻辑上(逻辑结构:数据元素之间的逻辑关系)可以把数据结构分成线性结构和非线性结构。线性结构的顺序存储结构是一种随机存取的存储结构,线性表的链式存储结构是一种顺序存取的存储结构。线性表若采用链式存储表示时所有结点之间的存储单元地址可连续可不连续。逻辑结构与数据元素本身的形式、内容、相对位置、所含结点个数都无关。 算法的设计取决于数据(逻辑)结构,而算法的实现依赖于采用的存储结构。数据的运算是在数据的逻辑结构上定义的操作算法,如检索、插入、删除、更新的排序等。 数据结构的形式定义为:数据结构是一个二元组: Data-Structure=(D,S) 其中:D是数据元素的有限集,S是D上关系的有限集。 数据结构不同于数据类型,也不同于数据对象,它不仅要描述数据类型的数据对象,而且要描述数据对象各元素之间的相互关系。 数据类型是一个值的集合和定义在这个值集上的一组操作的总称。数据类型可分为两类:原子类型、结构类型。一方面,在程序设计语言中,每一个数据都属于某种数据类型。类型明显或隐含地规定了数据的取值范围、存储方式以及允许进行的运算。可以认为,数据类型是在程序设计中已经实现了的数据结构。另一方面,在程序设计过程中,当需要引入某种新的数据结构时,总是借助编程语言所提供的数据类型来描述数据的存储结构。 计算机中表示数据的最小单位是二进制数的一位,叫做位。我们用一个由若干位组合起来形成的一个位串表示一个数据元素,通常称这个位串为元素或结点。当数据元素由若干数据项组成时,位串中对应于各个数据项的子位串称为数据域。元素或结点可看成是数据元素在计算机中的映象。 一个软件系统框架应建立在数据之上,而不是建立在操作之上。一个含抽象数据类型的软件模块应包含定义、表示、实现三个部分。 对每一个数据结构而言,必定存在与它密切相关的一组操作。若操作的种类和数目不同,即使逻辑结构相同,数据结构能起的作用也不同。 不同的数据结构其操作集不同,但下列操作必不可缺: #结构的生成; #结构的销毁; #在结构中查找满足规定条件的数据元素; #在结构中插入新的数据元素; #删除结构中已经存在的数据元素; #遍历。 抽象数据类型:一个数学模型以及定义在该模型上的一组操作。抽象数据类型实际上就是对该数据结构的定义。因为它定义了一个数据的逻辑结构以及在此结构上的一组算法。抽象数据类型可用以下三元组表示:(D,S,P)。D是数据对象,S是D上的关系集,P是对D的基本操作集。ADT的定义为: ADT 抽象数据类型名 ADT 抽象数据类型名; 抽象数据类型有两个重要特性:
- 数据抽象
  - 用ADT描述程序处理的实体时,强调的是其本质的特征、其所能完成的功能以及它和外部用户的接口(即外界使用它的方法)。
- 数据封装
  - 将实体的外部特性和其内部实现细节分离,并且对外部用户隐藏其内部实现细节。

常用的数据结构


- 离散结构
  - 集合
    - 并查集
    - 字典
      - 有序字典
- 线性结构
  - 线性表
    - 顺序表
    - 链表(鍵結串列
      - 单链表
      -
- 静态单链表
      -
- 跳表 (Skip list)
      - 双链表
      - 循环链表
      -
- 单循环链表
      -
- 双循环链表
  - 散列表(哈希表雜湊表)
  - (堆疊)
  - 队列佇列
    - 链队列
    - 循环队列
    - 优先队列 (有时使用来实现)
  - 双端队列
  -
  - 跳跃表
- 非线性结构
  - 数组
    - 二维数组矩阵
      - 稀疏矩阵
  - 广义表
  - 形结构
    - 二叉树二元樹
      - 哈夫曼树最优二叉树
      - 线索二叉树
      - 二叉排序树
      -
- 平衡二叉树
      -
  - AVL树
      -
  - 红黑树
      -
    - AA树
      -
  - 伸展树
      -
- 线段树
      -
      -
- 二叉堆
      -
- 二项堆
      -
- 斐波纳契堆
      -
- 配对堆
    - 森林
    - B树
      - 2-3-4树
    - 剖析树
    - 后缀树
    - Trie
    - 四叉树 (Quadtree)
    - 八叉树 (Octree)
    - kd树
    - 生成树
      - 最小生成树
  - 状结构(状结构)
    - 有向图
      - 有向网 (带权有向图)
      - 有向无环图 (DAG)
      -
- AOE网 (带权有向无环图)
      -
- AOV网
    - 无向图
      - 无向网 (带权无向图)
    - 连通图
      - 强连通图
    - 完全图
    - 稀疏图
    - 稠密图
    - 表示方法
      - 邻接矩阵
      - 邻接表
      - 十字链表
      - 邻接多重表
- 其他数据结构
  - 标签联合
  - 联合
  - 框架
  - 数据库和“表”

相关条目


- 算法
- 计算机科学
- 计算机科学课程列表

参考文献


- Cliford A. Shaffer/张铭等译:数据结构与算法分析(C++版,第二版),电子工业出版社 ISBN 7-5053-7646-2/TP.4425 [http://www.china-pub.com/computers/common/info.asp?id=6469]
- 严蔚敏 吴伟民著:数据结构(C语言版),清华大学出版社 ISBN 7-302-02368-9/TP.1185 [http://www.welan.com/html/00/32100.Html] Category:数据结构 ja:データ構造 ko:자료구조 th:โครงสร้างข้อมูล

二叉堆

Category:树结构 Category:堆 二叉堆是一种特殊的,二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足堆特性:父结点的键值总是大于或等于任何一个子节点的键值。

存储

二叉堆一般用数组来表示。例如,根节点在数组中的位置是0,第n个位置的子节点分别在2n+1和 2n+2。因此,第0个位置的子节点在2和3,1的子节点在4和5。以此类推。这种存储方式便于寻找父节点和子节点。 如下图的两个堆: 1 11 / \ / \ 2 3 9 10 / \ / \ / \ / \ 4 5 6 7 5 6 7 8 / \ / \ / \ / \ 8 9 10 11 1 2 3 4 将这两个堆保存在以1开始的数组中: 位置: 1 2 3 4 5 6 7 8 9 10 11 左图: 1 2 3 4 5 6 7 8 9 10 11 右图: 11 9 10 5 6 7 8 1 2 3 4

基本操作

在二叉堆上可以进行插入节点、删除节点、取出值最小的节点、减小节点的值等基本操作。

外部链接


- http://mathworld.wolfram.com/Heap.html
- http://www.policyalmanac.org/games/binaryHeaps.htm

图论

图论是数学的一个分支,它以为研究对象,研究节点和边组成的图形的数学理论和方法。 图论中的图是由若干给定的点及连接两点的边所构成的图形,这种图形通常用来描述某些事物之间的某种特定关系,用点代表事物,用连接两点的边表示相应两个事物间具有这种关系。 图论起源于著名的柯尼斯堡七桥问题。 图论的研究对象相当于一维的拓扑学

历史

图论问题


- 图的着色:
  - 边着色
  - 顶着色
  - 面着色
    - 四色定理
- 匹配问题
- 平面图
- 路径问题:
  - 柯尼斯堡七桥问题
  - 最小生成树
  - 最短路径
  - 遍历
- 连通性问题
- 网络流
  - 最大流
  - 最小费用最大流
  - 容量有上下界的最大流
  - 容量有上下界的最小费用最大流
- 独立集和团
  - 拉姆齐定理
- 拟阵

重要的算法


- 戴克斯特拉算法
- 克鲁斯卡尔算法
- 普里姆算法

参见


- 组合数学 Category:离散数学 Category:图论 ja:グラフ理論 ko:그래프 이론 simple:Graph theory th:ทฤษฎีกราฟ

堆排序

堆排序(Heap Sort)是指利用(heaps)这种数据结构来构造的一种排序算法。是一个近似完全二叉树结构,并同时满足堆属性:即子节点的键值或索引总是小于(或者大于)它的父节点。

堆节点的访问

通常是通过数组来实现的。 在起始索引为0的实现中:
- 的根节点(即堆的最大值)存放在位置0
- 节点j的左子节点在位置(2
- j+1)
- 节点j的右子节点在位置(2
- j+2)
- 节点j的父节点在位置floor((j-1)/2) 在起始索引为1的实现中:
- 的根节点(即堆的最大值)存放在位置1
- 节点j的左子节点在位置(2
- j)
- 节点j的右子节点在位置(2
- j+1)
- 节点j的父节点在位置floor(j/2)

堆的操作

的数据结构中,中的最大值总是位于根节点。中定义了以下几种操作:
- 删除根节点(delete_max):从的根节点处取出数据,然后删除根节点
- 插入一节点(insert):将一数据插入堆中
- 删除一节点(delete):将一数据从堆中删除

堆属性的保持

中进行了上述操作后,的特殊属性可能发生变化。例如,当在堆尾插入一个数据,它可能大于它的父节点,因而需要进行一系列的置换操作,调整它的位置,从而保持的特有属性。和此相关的操作包括:
- 筛选上移(sift_up):给定某个数据后,将其上移到相应的位置,从而保证其值不大于父节点。
- 筛选下移(sift_down):给定某个数据后,将其下移到相应的位置,从而保证其值不大于父节点。

示例代码

示例代码为C语言的结构采用陣列实现,起始索引为0。 #define MAX_HEAP_LEN 100 static int heap[MAX_HEAP_LEN]; static int heap_size = 0; // the number of elements in heaps static void swap(int
- a, int
- b) static void sift_up(int i) static void sift_down(int i) static void delete(int i) int delete_max() void insert(int new_data)

in-place堆排序

基于以上相关的操作,我们可以很容易的定义排序。例如,假设我们已经读入一系列数据并创建了一个,一个最直观的算法就是反复的调用del_max()函数,因为该函数总是能够返回堆中最大的值,然后把它从堆中删除,从而对这一系列返回值的输出就得到了该序列的降序排列。真正的in-place的堆排序使用了另外一个小技巧。对排序的过程是: # 建立一个堆H[0..n-1] # 把堆首(最大值)和堆尾互换 # 把堆的尺寸缩小1,并调用sift_down(0),目的是把新的数组顶端数据调整到相应位置 # 重复2号步骤,直到堆的尺寸为1

平均复杂度

堆排序的平均时间复杂度为O(n log n),空间复杂度为Θ (1)。 Category:排序算法 ja:ヒープソート

二叉堆

Category:树结构 Category:堆 二叉堆是一种特殊的,二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足堆特性:父结点的键值总是大于或等于任何一个子节点的键值。

存储

二叉堆一般用数组来表示。例如,根节点在数组中的位置是0,第n个位置的子节点分别在2n+1和 2n+2。因此,第0个位置的子节点在2和3,1的子节点在4和5。以此类推。这种存储方式便于寻找父节点和子节点。 如下图的两个堆: 1 11 / \ / \ 2 3 9 10 / \ / \ / \ / \ 4 5 6 7 5 6 7 8 / \ / \ / \ / \ 8 9 10 11 1 2 3 4 将这两个堆保存在以1开始的数组中: 位置: 1 2 3 4 5 6 7 8 9 10 11 左图: 1 2 3 4 5 6 7 8 9 10 11 右图: 11 9 10 5 6 7 8 1 2 3 4

基本操作

在二叉堆上可以进行插入节点、删除节点、取出值最小的节点、减小节点的值等基本操作。

外部链接


- http://mathworld.wolfram.com/Heap.html
- http://www.policyalmanac.org/games/binaryHeaps.htm

斐波纳契堆











































:: RELATED NEWS ::
Powys, Wales
Powys is a local government principal area in Wales. It has an area of 5196 km², covering the traditional counties of Montgomeryshire, Radnorshire and Brecknockshire. It was created in the local government reform of


War of Saint-Sardos
The War of Saint-Sardos was a short war fought between England and France in 1324. The war was a clear defeat for the English, and led indirectly to the overthrowing of Edward II of England. The war can also be seen as one of the precursors of the Hundred Years' War.

Background

During the reign of King
California State University at San Francisco
San Francisco State University is a branch of the California State University system. It is located in the southwestern part of San Francisco, California near Lake Merced, Fort Funston, and only a mile north of Daly City. In the autumn of 2003, approximately 29,686 students were
Arthur Morrison
Arthur George Morrison (1863-1945) was an English author and journalist, known for his realistic novels about London's East End and for his detective stories
California State University, San Francisco
San Francisco State University is a branch of the California State University system. It is located in the southwestern part of San Francisco, California near Lake Merced, Fort Funston, and only a mile north of Daly City. In the autumn of 2003, approximately 29,686 students were
All Rights Reserved 2005 wikimiki.org