博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数组heapify变为堆结构
阅读量:2376 次
发布时间:2019-05-10

本文共 1061 字,大约阅读时间需要 3 分钟。

public class Heapify {    public static void heapify(int[] arr) {        int length = arr.length;        for (int i = (length - 1) / 2; i >= 0; i--) {            shiftDown(arr, i);        }    }    //从索引为index的位置开始进行shiftdown操作    private static void shiftDown(int[] arr, int index) {        int length = arr.length;        while (2 * index + 1 < length) {            int left = 2 * index + 1;            int largest = left;            if (left + 1 < length && arr[left + 1] > arr[left]) {                largest = left + 1;            }                        if (arr[index] < arr[largest]) {                swap(arr, index, largest);            } else {                 break;            }            index = largest;        }    }    private static void swap(int[] arr, int i, int j) {        int temp = arr[i];        arr[i] = arr[j];        arr[j] = temp;    }    public static void main(String[] args) {        int[] arr = {3, 7, 5, 4, 1, 7, 9, 8, 5, 2};        heapify(arr);        for (int i : arr) {            System.out.print(i + " ");        }    }}

转载地址:http://wsaxb.baihongyu.com/

你可能感兴趣的文章
mmap测试程序
查看>>
linux 启动详解
查看>>
在linux内核中操作文件的方法
查看>>
Linux下Socket编程
查看>>
Linux内核和用户空间通信的方式— proc文件和mmap共享内存
查看>>
基于DSP/BIOS和NDK的嵌入式网络操作系统设计方案
查看>>
CCS开发环境搭建小结
查看>>
DM642 gel文件和.cmd文件参考
查看>>
DSP软件优化小实验
查看>>
DSP/BIOS 介绍
查看>>
多线程编程之重点--使用DSP/BIOS时选择线程类型的参考方法
查看>>
DSP/BIOS在嵌入式数据采集系统中的应用
查看>>
基于DSP/BIOS和NDK的嵌入式网络操作系统设计方案
查看>>
迅雷C++试题及解答
查看>>
Linux 中断学习之小试牛刀篇
查看>>
中断之原理篇
查看>>
高内聚 低耦合
查看>>
GUI开发之DirectFB
查看>>
GTK/DirectFB两个闪烁的问题
查看>>
《Linux内核修炼之道》 之 高效学习Linux驱动开发
查看>>