数据结构与算法--第16篇(堆排序)

堆排序是一种基于完全二叉树的排序算法,采用选择排序的方式,时间复杂度为O(n log n)。它通过构建大顶堆或小顶堆,找到序列的最值并与其末尾元素交换,逐步实现排序。本文将详细介绍堆排序的概念和实现代码。
摘要由CSDN通过智能技术生成

数据结构与算法

一,堆排序

1,简介:

堆排序:
1,利用堆数据结构设计的排序算法,是一种选择排序,最好、最坏平均时间复杂度都为O,也是不稳定排序,是一种完全二叉树;
2,大顶锥:每个节点的值都大于或等于其子节点的值;
3,小顶锥:每个节点的值都小于或等于其子节点的值;

排序思路:
1,将排序的序列构成一个顶锥(正序大顶锥,倒叙小顶锥);
2,此时整个序列的最值就是就是顶锥的根节点;
3,将其与末尾值进行交换就得到了末尾为最值;
4,将剩余的安装1重新构建顶锥,依次类推得到有序列的数组,达到排序效果;

2,代码

package com.sort;

import java.util.Arrays;
import java.util.jar.JarEntry;

/**
 * @param
 * @Author: AaNeei
 * @Date: 2019/9/13  14:48
 * @Description: 游学网
 * @throws:
 */
public class HeapSort {
   
    public static void main(String[] args) {
   
        int[] arr = {
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值