最小堆的Java实现
来源:互联网 发布:姚明10-11赛季数据 编辑:程序博客网 时间:2024/06/05 03:22
public class Heap { //创建堆 public void createHeap(int[] array, int n) { int i = n; for( i = (i-2) / 2; i >= 0; --i) { AdjustHeap(array, i, n); } } //调整堆 public void AdjustHeap(int[] array, int top, int n) { //System.out.println("==============="); int left = 2 * top + 1; int temp = array[top]; while (left < n) { if(left + 1 < n && array[left] > array[left+1]) ++left; System.out.println(array[left] + " " + temp); if(array[left] > temp) break; System.out.println(array[top] + " " + array[left]); array[top] = array[left]; top = left; left = 2 * left + 1; } array[top] = temp; } public void DeleteHeap(int[] array, int n) { array[0] = array[n-1]; AdjustHeap(array, 0, n-1); } public void InsertHeap(int[] array, int n, int num) { int i , j; array[n] = num; i = n; j = (n-1) / 2; while (j >= 0 && i != 0) { if(array[j] <= num) break; array[i] = array[j]; i = j; j = (i-1) / 2; } array[i] = num; } public static void main(String[] args) { int[] num = new int[]{10,9, 8, 7,6, 5, 4, 3, 2, 1}; Heap heap = new Heap(); heap.createHeap(num, 10); for(int i = 0; i < 10; ++i) { System.out.print(num[i] + " "); } }}
阅读全文
0 0
- 最小堆的java实现
- 最小堆的JAVA实现
- 最小堆的Java实现
- Java最小堆实现
- 最小堆和最大堆的JAVA实现
- Java实现的堆排序(最小堆)
- 最小堆的实现
- 最小堆的实现
- 最小堆的实现
- Java heap的实现 最小堆的实现 代码简洁
- 最小堆&&最大堆的实现(c++)
- 最小堆&&最大堆的实现(c++)
- 最小堆与最大堆的实现
- 最小堆&&最大堆的实现(c++)
- 最大堆与最小堆的实现
- 最小堆的C++实现
- 最小-最大堆的实现
- 最小堆定时器的实现
- 关于二维数组循环的效率问题
- 【OpenCV3图像处理】非线性滤波:中值滤波、双边滤波、引导滤波
- HTML DOM详解
- linux基于lnmp搭建wordpress博客
- Help Jimmy
- 最小堆的Java实现
- 代码上线架构方案
- this关键字
- location.href方式跳转传值中文乱码解决
- leetcode605. Can Place Flowers
- 欢迎使用CSDN-markdown编辑器
- 【OpenCV3图像处理】图像直方图均衡化、直方图匹配
- 调用函数计算两个数的运算结果
- 关于计划