堆的各种操作
来源:互联网 发布:北京口腔医院知乎 编辑:程序博客网 时间:2024/04/29 07:10
注:a数组储存数据,本文以小头堆的写法为例
建堆
procedure makeheap;var i:longint;begin for i:=n(div 2)downto 1 do//div 2不会错,可要可不要 down(i);end;
下移
procedure down(i,n:longint);//i是要下移的节点编号,n是堆的范围var t,i,j:longint;begin j:=i; i:=i*2; if i>n then exit; repeat if (a[i]>a[i+1])and(i+1<=n) then inc(i); if a[i]<a[j] then begin t:=a[i];a[i]:=a[j];a[j]:=t; end else break; j:=i; i:=i*2; until i>n;end;
上移
procedure up(i,n:longint);//i是要下移的节点编号,n是堆的范围var t,i,j:longint;begin if i=1 then exit; repeat j:=i div 2; if a[i]<a[j] then begin t:=a[i];a[i]:=a[j];a[j]:=t; end else break; i:=j; until i=1;end;
2 0
- 堆的各种操作
- 堆的各种操作
- 实现堆的各种操作
- 各种图的各种操作
- 堆的综合操作
- 堆的操作
- STL的堆操作
- 堆的操作
- 堆的基本操作
- 堆的基本操作
- 堆的基本操作
- 堆的操作
- STL的堆操作
- python 堆的操作
- 堆的相关操作
- 堆的操作
- 堆的基本操作
- 堆的基本操作
- python基础知识之列表--方法
- HTML5 Web存储
- C#中,取List中指定List元素
- listview字母索引查找
- python中map和reduce的应用
- 堆的各种操作
- Python中OS模块使用说明
- const保护初始数据
- JavaScript判断数据类型
- XML格式文件解析
- 2299.Ultra-QuickSort
- N的阶乘的近似值(斯特林公式)
- jdk1.8新特新
- Fineui 添加打印控件