202205-20 JAVA十大排序算法之堆排序详解 目录堆排序知识补充二叉树满二叉树完全二叉树二叉堆代码实现时间复杂度算法稳定性思考总结堆排序这里的堆并不是JVM中堆栈的堆,而是一种特殊的二叉树,通常也叫作二叉堆。它具有以下特点:它是完全二叉树堆中某个结点的值总是不大于或不小于其父结点的值知识补充二叉树树中节点的子节点不超过2的有序树满二叉树二叉树中除了叶子节点,每个节点的子节点都为2,则此二叉树为满二叉树。完全二叉树如果对满二叉树的结点进行编... 继续阅读 >
202110-15 Java实现堆排序和图解 目录堆排序基本介绍堆排序基本思想堆排序图解步骤一步骤二代码实现总结堆排序基本介绍1、堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。2、堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆,注意:没有要求结点的左孩子的值和右孩子的值的大小关系。3、每个结点的值都小于或等于其左右孩子结点... 继续阅读 >
202109-10 详解Java如何实现小顶堆和大顶堆 大顶堆每个结点的值都大于或等于其左右孩子结点的值小顶堆每个结点的值都小于或等于其左右孩子结点的值对比图实现代码publicclassHeapNode{privateintsize;//堆大小privateint[]heap;//保存堆数组//初始化堆publicHeapNode(intn){heap=newint[n];size=0;}//小顶堆建堆publicvoidminInsert(intkey){inti=this.size;if(i==0)heap[0]=key;... 继续阅读 >