新疆分校

您当前位置:新疆公务员考试网新疆人事考试网 > 国企央企考试 > 报考指导 > 国家电网考试备考计算机之数据结构与算法(16)

国家电网考试备考计算机之数据结构与算法(16)

2019-11-19 12:44:50 新疆公务员考试网 //xj.huatu.com/ 文章来源:未知

  7.堆 (Heap)

  在计算机科学中,堆是一种特殊的树形数据结构,每个结点都有一个值。通常我们所说的堆的数据结构,是指二叉堆。堆的特点是根结点的值最小(或最大),且根结点的两个子树也是一个堆。

  例程

  为将元素X插入堆中,找到空闲位置,建立一个空穴,若满足堆序性(英文:heap order),则插入完成;否则将父节点元素装入空穴,删除该父节点元素,完成空穴上移。直至满足堆序性。这种策略叫做上滤(percolate up)。

  void Insert( ElementType X, PriorityQueue H ){ int i; if( IsFull(H) ) { printf( "Queue is full.\n" ); return; } for( i = ++H->Size; H->Element[i/2] > X; i /= 2 ) H->Elements[i] = H->Elements[i/2]; H->Elements[i] = X;}

  以上是插入到一个二叉堆的过程。

  DeleteMin,删除最小元,即二叉树的根或父节点。删除该节点元素后,队列最后一个元素必须移动到堆得某个位置,使得堆仍然满足堆序性质。这种向下替换元素的过程叫作下滤。

  ElementType DeleteMin( PriorityQueue H ){ int i, Child; ElementType MinElement, LastElement; if( IsEmpty( H ) ) { printf( "Queue is empty.\n" ); return H->Elements[0]; } MinElement = H->Elements[1]; LastElement = H->Elements[H->Size--]; for( i = 1; i*2 <= H->Size; i = Child ) { /* Find smaller child. */ Child = i*2; if( Child != H->Size && H->Elements[Child+1] < H->Elements[Child] ) Child++; /* Percolate one level. */ if( LastElement > H->Elements[Child] ) H->Elements[i] = H->Elements[Child]; else break; } H->Elements[i] = LastElement; return MinElement;}

  7.算法设计的分析技术

  算法是对问题求解过程的准确描述,由有限条指令组成,这些指令能在有限时间内执行完毕并产生确定性的输出。

  进行算法的时间复杂度分析,就是求其T(n),并用O、Ω或是Θ以尽可能简单的形式进行表示。

  理想情况下,希望能够使用Θ表示算法的时间复杂性。退而求其次,可以使用O或是Ω。

  使用O时,希望估计的上界的阶越小越好。

  使用Ω时,希望估计的下界的阶越大越好。

  树的高度为ëlognû,所以将一个元素插入大小为n的堆所需要的时间是O(logn).

  delete(H,i) 所需要的时间是O(logn).

  make-heap(A): 从数组A创建堆

  方法1:从一个空堆开始,逐步插入A中的每个元素,直到A中所有元素都被转移到堆中。

  时间复杂度为O(nlogn).

  方法2:

  MAKEHEAP(创建堆)

  输入:数组A[1…n]

  输出:将A[1…n]转换成堆

  1. fori← ën/2û downto 1

  2. Sift-down(A,i){使以A[i]为根节点的子树调整成为堆,故调用down过程}

  3. endfor

  时间复杂度为O(n).


  ——推荐阅读——

  ——推荐阅读——

    

招考公告——新疆社会招聘考试公告

  试题资料——2022新疆社会工作相关考题

  考试技巧——新疆社会工作笔试备考技巧

  社会工作备考——新疆社区招聘考试《公基+社区知识+综合写作》乐享班

  社会工作报考——新疆社会工作者报考条件

新疆公务员考试网推荐:

新疆人事考试网

新疆华图微信公众号

想了解此公告考试内容及更多精彩信息,请扫码关注

在线咨询

新疆华图微信客服

扫描二维码,添加总客服,获取更多备考资料!

更多招考

 以上为本文的全部内容,由新疆公务员考试网提供,希望对考生有所帮助!更多新疆公务员招考信息,请加新疆公务员考试交流群新疆公务员考试网,及关注新疆公务员考试招考资讯/新疆人事考试网

(编辑:Carry)
有报考疑惑?在线客服随时解惑
华图教育:xinjianght
想考上公务员的人都关注了我们!
立即关注

10万+
阅读量
150w+
粉丝
1000+
点赞数

联系我们
微信二维码

新疆华图教育官方微信

新疆华图

乌鲁木齐市沙依巴克区西北路887号

NAGA尚院3楼(哈密路下车)

北京华图宏阳文化发展股份有限公司

新疆分公司

客服热线:0991-4539521

网站:http://xj.huatu.com

  • 乌鲁木齐
  • 昌吉
  • 伊犁
  • 博乐
  • 阿克苏
  • 哈密
  • 阿勒泰
  • 石河子
  • 库尔勒
  • 喀什
  • 克拉玛依
  • 和田
  • 吐鲁番
  • 塔城

乌鲁木齐市沙依巴克区西北路887号NaGa尚院3楼

客服热线:0991-4539521

网站:http://xj.huatu.com

昌吉南公园西路中石油教育培训4楼

客服热线:0994-6539099

网站:http://changji.huatu.com/

伊宁市解放西路上海城成鑫商业写字楼4楼华图教育(1路,101路,12路公交车站上海城门口站向西200米)

客服热线:0999-8097780

网站:http://yili.huatu.com/

博乐市青得里大街新华书店四楼华图教育

客服热线:0909-2225670

网站:http://bole.huatu.com/

阿克苏市大十字新农大厦13楼

客服热线:0997-6830139

网站:http://akesu.huatu.com

哈密市天山北路豫商大厦14楼4号

客服热线:0902-2308211

网站:http://hami.huatu.com

阿勒泰市温州大酒店10楼

客服热线:0906-2138242

网站:http://aletai.huatu.com

石河子市光明大厦二单元12楼(兵团设计院)

客服热线:0993-2018859

网站:http://shihezi.huatu.com

库尔勒人民东路豪景大厦1001室

客服热线:0993-2018859

网站:http://kuerle.huatu.com

喀什新德商务酒店7楼(喀什电视台对面)

客服热线:0998-2573025

网站:http://kashi.huatu.com

克拉玛依市友谊路16号博达银都酒店613室

客服热线:0990-6615251

网站:http://klmy.huatu.com

和田

客服热线:

网站:http://hetian.huatu.com

吐鲁番

客服热线:18999939621

网站:http://tulufan.huatu.com

塔城

客服热线:15099630950

网站:http://tacheng.huatu.com