/** * 确保parent最大 * * @param array * @param parentIndex 父节点 * @param endIndex 最大节点 */ private static void maxHeapify(int[] array, int parentIndex, int endIndex){ int rightIndex = (parentIndex+1)<<1; int leftIndex = rightIndex - 1; int largestIndex = parentIndex; if(rightIndex <= endIndex && rightIndex > 0 && array[rightIndex] > array[largestIndex]){ largestIndex = rightIndex; } if(leftIndex <= endIndex && leftIndex > 0 && array[leftIndex] > array[largestIndex]){ largestIndex = leftIndex; } if(largestIndex != parentIndex){ swap(array, largestIndex, parentIndex); } } private static void buildMaxHeap(int[] array, int endIndex){ for(int i=(endIndex-1)>>1; i>=0; i--){ maxHeapify(array, i, endIndex); } } private static void swap(int[] array, int a, int b){ int temp = array[a]; array[a] = array[b]; array[b] = temp; } private static void heapSort(int[] array){ if(array == null || array.length <= 1){ return; } for(int i=array.length-1;i>0; i--){ //将[0,i]之间的子数组构建最大堆 buildMaxHeap(array, i); swap(array, 0, i); } } public static void main(String[] args){ int size = 15; int[] array = new int[size]; for(int i=0;i<size; i++){ array[i] = (int) (100 * Math.random()); } System.out.println("排序前:" + Arrays.toString(array)); heapSort(array); System.out.println("排序后:" + Arrays.toString(array)); }
相关推荐
java堆排序、快速排序、冒泡排序、顺序排序等等
java堆排序和几种排序方法实现代码.pdf
java堆排序和几种排序方法实现代码文.pdf
Java实现堆排序不是C,Java实现堆排序不是C,Java实现堆排序不是C,Java实现堆排序不是C
Java 写得最大堆排序代码,给大家参考下,自己刚写的。
堆排序7.java 使用java实现的堆排序堆排序7.java 使用java实现的堆排序堆排序7.java 使用java实现的堆排序堆排序7.java 使用java实现的堆排序堆排序7.java 使用java实现的堆排序堆排序7.java 使用java实现的堆排序堆...
本篇文章主要介绍了堆排序的简介,定义,算法实现以及堆排序的性质。想要了解的朋友可以参考下
主要介绍了java堆排序原理与实现方法,结合实例形式分析了java堆排序的相关原理、实现方法与操作注意事项,需要的朋友可以参考下
堆排序12.java 使用java代码实现堆排序12.java 使用java代码实现堆排序12.java 使用java代码实现堆排序12.java 使用java代码实现堆排序12.java 使用java代码实现堆排序12.java 使用java代码实现堆排序12.java 使用...
堆排序10.java 使用java来实现堆排序10.java 使用java来实现堆排序10.java 使用java来实现堆排序10.java 使用java来实现堆排序10.java 使用java来实现堆排序10.java 使用java来实现堆排序10.java 使用java来实现堆...
堆排序算法的java实现,采用大根堆。时间复杂度为O(nlogn).
本文对经典的堆排序非递归算法进行了详细的分析,并用JAVA实现。用过该问题的JAVA实现,可使学习者清晰的观测到解决该问题的全过程。
java的堆排序算法实现程序,含测试,可直接运行。java的堆排序算法实现程序,含测试,可直接运行。
堆排序算法 java
堆排序算法Java实现
主要为大家详细介绍了Java堆排序算法的相关代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
在本篇文章里我们给大家分享了关于java堆排序的概念原理相关知识点内容,有需要的朋友们可以学习下。
主要介绍了JAVA堆排序算法的知识点,文中代码非常详细,配合上图片讲解,帮助大家更好的参考和学习,感兴趣的朋友可以了解下
下面小编就为大家分享一篇Java 堆排序实例(大顶堆、小顶堆),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧