堆排序及其c语言实现
2013-06-21 13:03
232 查看
堆的性质:堆是一棵完全二叉树,它有最大堆和最小堆之分,这里只分析最大堆!(最小堆与最大堆类似) 就是所有的子节点都小于根节点的完全二叉树
堆的几种操作(数组实现): 其中 len 表示 数组长度,headsize表示堆的长度
其中堆的左节点编号
堆的右节点编号:
堆的头结点编号
1.保持堆的性质:
7.加入到某值 O(lgn)
View Code
其中堆排序没有响应的删除算法,只有朴素思路。。
堆的几种操作(数组实现): 其中 len 表示 数组长度,headsize表示堆的长度
其中堆的左节点编号
int LEFT(int i ) { return i*2; }
堆的右节点编号:
int RIGHT(int i ) { return i*2 +1; }
堆的头结点编号
int PARENT(int i ) { return i/2; }
1.保持堆的性质:
7.加入到某值 O(lgn)
void MAX_HEAP_INSERT(int A[],int key) { heapsize = heapsize +1; A[heapsize] = INT_MIN; HEAP_INCREASE_KEY(A,heapsize,key); }
View Code
其中堆排序没有响应的删除算法,只有朴素思路。。
相关文章推荐
- 单链表的实现和相关面试题及其详解(C语言)
- 堆的实现、堆排序及其应用
- 排序算法之希尔排序<Shell_Sort>及其C语言代码实现
- 自定义strcat函数的用法及其实现C语言
- 堆排序--C语言实现
- c语言:实现对于给定的正整数N,依次打印出小于等于N的所有素数。两种方法及其优化
- 堆排序原理及c语言实现
- 常用哈希函数的比较及其C语言实现
- C语言实现单向链表及其各种排序(含快排,选择,插入,冒泡)
- 排序算法之快速排序<Quick_Sort>及其C语言代码实现
- <C语言>递归思维及其实现-----汉诺塔问题
- 三种排序算法的C语言实现--直接插入、希尔、堆排序
- 堆排序(C语言实现)
- 算法基础:堆排序原理及其实现
- 排序二叉树及其遍历 c语言实现
- java版排序算法简介及冒泡排序以及优化,选择排序,直接插入排序,希尔排序,堆排序,快速排序及其优化前言 2 分类 2 稳定性 3 时间复杂度 4 Java实现版本 5 1、冒泡排序 6 2、选择排序
- 理解全局变量的存储_G及其C语言实现
- DTW的基本原理及其C语言实现
- 排序算法之冒泡排序<Bubble_Sort>及其C语言代码实现
- 堆排序(C语言实现)迭代