美文网首页
算法<六>堆排序

算法<六>堆排序

作者: 小吖么小一郎 | 来源:发表于2019-07-05 14:13 被阅读0次
package com.example.demo.SortAlgorithm;
/*
 * @Author: i_heh
 * @Date: 2019/7/5
 * @Time: 14:11
 * @Description: 堆排序
 */
public class HeapSort {
    public static void main(String[] args) {
        int[] a=new int[]{0,9,8,3,5,2,7};
        Sort(a,a.length-1);
        for(int i:a){
            System.out.println(i);
        }
    }
    public static void MaxHeapify(int[] a,int index,int size){
        int l=2*index;
        int r=2*index+1;
        int largest=index;
        if(l<=size && a[l]>a[index]){
            largest=l;
        }
        if(r<=size && a[r]>a[largest]){
            largest=r;
        }
        if(largest!=index){
            int temp=a[largest];
            a[largest]=a[index];
            a[index]=temp;
            MaxHeapify(a,largest,size);
        }
    }
    public static void HeapBuild(int[] a,int size){
        for(int i=size/2;i>=1;i--){
            MaxHeapify(a,i,size);
        }
    }
    public static void Sort(int[] a,int size){
        HeapBuild(a,size);
        for(int i=size;i>=2;i--){
            int temp=a[i];
            a[i]=a[1];
            a[1]=temp;
            MaxHeapify(a,1,i-1);
        }
    }
}

相关文章

  • 算法与数据结构(六):堆排序

    title: 算法与数据结构(六):堆排序tags: [算法与数据结构, C语言, 堆排序]date: 2019-...

  • iOS算法总结-堆排序

    iOS算法总结-堆排序 iOS算法总结-堆排序

  • 排序算法(六)堆排序

    排序算法(六 )堆排序 1.算法思路  堆排序(Heap-Sort)是一种基于二叉堆的排序算法。即将一个无序序列构...

  • 算法<六>堆排序

  • 数据结构与算法

    常见排序算法 堆排序 算法大全 算法大汇总

  • 堆排序算法思想

    前两天看了看堆排序算法,啃了半天的书,最后搞明白了堆排序算法,今天有时间给大家说说这个堆排序算法。首先讲一下算法的...

  • 排序算法-堆排序

    参考: Java排序算法(五):堆排序 【算法与数据结构】图说堆排序 【数据结构】排序算法:希尔、归并、快速、堆排...

  • 堆排序

    转载:图解排序算法(三)之堆排序 预备知识 堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选...

  • 常用排序算法之堆排序

    堆排序算法 运行 输出

  • 数据结构

    Q:堆排序 A:1 堆排序算法(图解详细流程)2 堆排序 Q:排序算法时间复杂度与稳定性 选择排序为什么不稳定:举...

网友评论

      本文标题:算法<六>堆排序

      本文链接:https://www.haomeiwen.com/subject/uwtehctx.html