堆排序Java代码
来源:互联网 发布:淘宝卖家倒闭 编辑:程序博客网 时间:2024/05/16 23:38
package algorithms;import java.util.Random;public class MaxHeapify {private static int heapSize;public static void main(String[] args) {Random rand = new Random();int[] a = new int[rand.nextInt(100)];for (int i = 0; i < a.length; i++)a[i] = rand.nextInt(100);heapSort(a);for (int i : a)System.out.print(i + " ");}private static void heapSort(int[] a) {heapSize = a.length;buildMaxHeap(a);for (int i = a.length - 1; i >= 1; i--) {swap(a, i, 0);heapSize = heapSize - 1;maxHeapify(a, 0);}}private static void swap(int[] a, int i, int j) {int temp = a[i];a[i] = a[j];a[j] = temp;}private static void buildMaxHeap(int[] a) {for (int i = a.length / 2; i >= 0; i--) {maxHeapify(a, i);}}private static void maxHeapify(int[] a, int i) {int l = left(i);int r = right(i);int largest = i;if (l < heapSize && a[l] > a[i])largest = l;elselargest = i;if (r < heapSize && a[r] > a[largest])largest = r;if (largest != i) {swap(a, i, largest);maxHeapify(a, largest);}}private static int left(int i) {return 2 * i;}private static int right(int i) {return 2 * i + 1;}}
输入为:
- 堆排序Java代码
- 堆排序JAVA代码
- java堆排序代码
- java 堆排序代码(最小堆)
- 堆排序java代码实现
- java排序之贰------堆排序代码
- 堆排序的Java代码实现
- 选择排序、树形排序、堆排序的java代码实现
- 快速排序,归并排序,堆排序的java代码实现
- JAVA排序算法实现代码-堆(Heap)排序
- 八大排序算法之-堆排序 java代码
- Java实现常见排序--希尔排序、快排序、堆排序、归并排序等Java实现代码
- java排序 -- 堆排序
- 堆排序代码
- 堆排序《代码》
- 堆排序 经典代码
- 堆排序代码
- 堆排序详细代码
- WingIDE4.1破解方法
- Ubuntu 安装deb提示“内部错误 无法打开文件..."解决方案
- va_list
- iphone开发之获取网卡的MAC地址和IP地址
- 想成为嵌入式程序员应知道的0x10个基本问题
- 堆排序Java代码
- Ubuntu "sudo ... /etc/sudoers is mode 0640, should be 0440"解决方案
- PostgreSQL的存储系统一:控制文件存储结构
- 存储管理的页面置换算法
- JAVA设计模式五--Prototype(原型模式)
- 初学粒子滤波中遇到的问题题问?
- sql中的左连,右连,内连,全连接---经常忘记,稍微记录一下
- TCP/IP Protocol Suite(2)——TCP/IP协议簇
- 快速排序Java代码