2013年11月19日

基本排序算法之堆排序

摘要: 1991年计算机先驱奖获得者、斯坦福大学计算机科学系教授罗伯特·弗洛伊德(Robert W.Floyd)和威廉姆斯(J.Williams)在1964年共同发明了著名的堆排序算法(Heap Sort )。(二叉)堆数据结构是一种数据对象,它可以被视为一棵完全二叉树,树中每个节点与数组中存放该节点的那个元素对应,树的每一层都是填满的,最后一层可能除外(最后一层从最左边节点的左子树开始填。堆氛围两种:最大堆(大根堆)和最小堆(小跟堆)。一个最大堆可以看成一棵完全二叉树和一个数组(见图一),圆圈中的数字表示书中每个节点存储的值,及诶单那上方的数字表示对应的数组下标。图一中树的高度为小堆的组织方式与最大堆恰好相仿。使得在当前无序区中选取最大(或最小)关键字的记录变得简单。 阅读全文

posted @ 2013-11-19 15:58 RobertC 阅读(460) 评论(0) 推荐(0) 编辑

导航