数据结构 堆排序模板

Kelli ·
更新时间:2024-11-10
· 578 次阅读

堆支持的操作:
1.插入一个数
2.求集合当中的最小值
3.删除最小值
4.删除任意一个元素
5.修改任意一个操作

import java.util.Scanner; public class HeapSort{ //堆排序 static int N = 10010; static int [] h = new int[N]; static int size = 0; static void down(int u){ int x = u; if(u*2<=size&&h[u*2]<h[x]) x = u*2; if(u*2+1<=size&&h[u*2+1]=1&&h[x/2]>h[x]){ swap(x/2,x); x = x /2; } }

heap[++size] = x;up(size); //插入一个数
heap[1]; //求最小值
heap[1] = heap[size];size–;down(1); //删除最小值
heap[k] = heap[size];size–;down(k);up(k); //删除任意一个元素
heap[k] = x;down(k);up[k]; //修改任意一个元素

推荐练习 洛谷p1090

添加链接描述


作者:豪满天下



模板 数据 堆排序 排序 数据结构

需要 登录 后方可回复, 如果你还没有账号请 注册新账号