public static void heapSort() { int[] arr = {0, 5, 6, 333, 5, 8, 999, 7, 7, 5, 45, 3}; int heapSize = arr.length - 1;//堆的大小, buildHeap(arr, heapSize);//建堆,递归调用maxHeapify System.out.println(Arrays.toString(arr)); for (int i = arr.length - 1; i > 0; i--) { // 堆从index=1开始建立,方便操作 swap(arr, 1, i); //每一次把第一个元素(最大)放到堆的最后一个节点,所以每一次堆的大小减一 heapSize--; maxHeapify(arr, 1, heapSize); } System.out.println(Arrays.toString(arr)); } private static void maxHeapify(int[] arr, int index, int heapSize) { int leftIndex = index << 1; int rightIndex = leftIndex + 1; int largestIndex = index; if (leftIndex <= heapSize && arr[leftIndex] > arr[index]) { largestIndex = leftIndex; } if (rightIndex <= heapSize && arr[rightIndex] > arr[largestIndex]) { largestIndex = rightIndex; } if (largestIndex != index) { swap(arr, index, largestIndex); maxHeapify(arr, largestIndex, heapSize); } } private static void buildHeap(int[] arr, int heapSize) { //(arr.length/2)从非叶子节点处开始遍历 for (int i = arr.length / 2; i > 0; i--) { maxHeapify(arr, i, heapSize); } } public static void swap(int arr[], int j, int i) { int tmp = arr[j]; arr[j] = arr[i]; arr[i] = tmp; }
相关推荐
oracle:Heap size 3597K exceeds notification threshold 解决方法
java.lang.OutOfMemoryError: Java heap space 解决方法
搜集整理关于java错误处理:java.lang.OutOfMemoryError: Java heap space java.lang.OutOfMemoryError: Java heap space 资料整理
记录java.lang.OutOfMemoryError:Java heap space的情况 文章内容: 一.问题描述+原因分析+解决方案 二.JVM调优说明 三.Tomcat添加到jvisualvm监控
java虚拟机OutOfMemoryError:Java heap space堆dump文件,可以直接用来分析。
NULL 博文链接:https://geyubin.iteye.com/blog/779330
Myeclipse下java.lang.OutOfMemoryError Java heap space的解决
heap dump: heap dump文件是一个二进制文件,它保存了某一时刻JVM堆中对象使用情况。HeapDump文件是指定时刻的Java堆栈的快照,是一种镜像文件。
堆排序 堆排序(Heap Sort)是一种基于二叉堆数据结构的排序算法
报错 java.lang.OutOfMemoryError: Java heap 启动报错java.lang.ClassNotFoundException: 1catalina.org.apache.juli.FileHandler JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -...
iOS 拦截奔溃 使程序不在崩溃 使用Runloop起死回生 拦截崩溃信息 传到服务器
heapdump分析工具------HeapAnalyzer: 2014年1月最新发布 用法: 在命令行执行 java -Xmx500m -jar ha453.jar
最初的方案是在,Was启动后和发生死机时,使用HeapDump来分析具体程序调用的Java对象。但时间的快照文件却非常难以分析发生宕机时候内存堆内具体的变化情况。由于,需要准确定位到java虚拟机中堆栈的使用情况。由此...
特性: h- 存储数据的数组heapSize- 堆的大小方法: Heap- Heap 类的构造函数,接受数字数组作为输入。 heapSort- 用于执行排序的方法,运行时间为 O(nlogn),尽管非常非常慢...不能用于对数组进行排序!!! heap...
我刚用C#写的堆排序算法(HEAPSORT),算法简洁,质量不错,只是注释不多
堆套件Heap 数据结构的 Swift 实现
void heap_sort(int A[],int length) { BUILD_MAX_HEAP(A,length); int i,middle; for(i=length-1;i>0;i--) { middle=A[0]; A[0]=A[i]; A[i]=middle; heap_size--; MAX_HEAPIFY(A,0); } }
java解决nested exception is java.lang.OutOfMemoryError Java heap space 解决OOM
this is the implementation of heap data structure