堆结构的内部是以数组实现,表现形式为一个完全二叉树,对应关系上,上级节点的下标始终等于直接下级节点的下标(任意一个)除2的除数,下级节点的坐标左孩子为上级坐标的位置2+1,右孩子为上级坐标的位置2+2,这个条件始终满足 如下代码就是一个简易的堆结构实现 using System; namespace ...
分类:
Web程序 时间:
2021-04-01 12:52:33
阅读次数:
0
1.5 堆排序 ? 堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。 核心思路: 1、depth := length/2 - 1 //节点深度,n,2n+1,2n+2 2、 ...
分类:
编程语言 时间:
2021-03-05 13:28:37
阅读次数:
0
下面直接上代码*(我是直接用的for循环初始化开始做的,也可以使用递归解决)* 这是树节点类 package com.edu.dataStructure.treeDemo; import java.util.*; /** * <p> * 自己创建的树节点 * </P> * */ public cla ...
分类:
编程语言 时间:
2021-01-30 12:16:45
阅读次数:
0
张克清 冒泡排序和选择排序算法两个排序算法 、三个查找算法及测试程序 /*排序算法1、冒泡排序2、插入排序3、选择排序4、希尔排序5、归并排序6、快速排序7、堆排序8、基数排序*/int BubbleSort(int a[],int n){int i=0,j=0;int temp=0;for(i=0 ...
分类:
编程语言 时间:
2021-01-25 10:56:25
阅读次数:
0
背景知识: 完全二叉树:除了最后一层,所有层的节点数达到最大,与此同时,最后一层的所有节点都在最左侧。(堆使用完全二叉树) 满二叉树:所有层的节点数达到最大。一棵层数为 h 的满二叉树,其节点数为2^h - 1个。 思路1:层序遍历 或 递归 遍历整棵树。 但没用到 完全二叉树 的性质。。不可取 思 ...
分类:
其他好文 时间:
2020-12-29 11:35:11
阅读次数:
0
题目链接:https://leetcode-cn.com/problems/kth-largest-element-in-an-array/ 1 先快速排序,再取第 K个 class Solution { public int findKthLargest(int[] nums, int k) { ...
分类:
编程语言 时间:
2020-12-19 12:57:18
阅读次数:
1
堆 堆:当一棵二叉树的每个结点都大于等于它的两个子结点时,它被称为堆有序。 命题O:根结点是堆有序的二叉树中的最大结点 二叉堆:一组能够用堆有序的完全的二叉树排序的元素,并在数组中按照层级存储(不使用数组的第一个位置)。 命题P:一棵大小为N的完全二叉树的高度为lgN。 堆有序上浮 由下至上的堆有序 ...
分类:
编程语言 时间:
2020-12-17 13:13:07
阅读次数:
6
二叉堆是一种应用很广的数据结构,今天,我们就来简单讲讲二叉堆。什么是二叉堆?二叉堆是一种特殊的堆。具有如下的特性:具有完全二叉树的特性。堆中的任何一个父节点的值都大于等于它左右孩子节点的值,或者都小于等于它左右孩子节点的值。根据第二条特性,我们又可以把二叉堆分成两类:1、最大堆:父节点的值大于等于左右孩子节点的值。2、最小堆:父节点的值小于等于左右孩子节点的值。我们把二叉堆的根节点称之为堆顶。根据
分类:
编程语言 时间:
2020-12-02 12:34:24
阅读次数:
6
##题目描述 给定一个数组a和数字k,找出a中第k大的数。 ##方法一:快排思想 找到一个枢轴,枢轴右边还有k-1个数即可。因为每次遍历只选择一边,因而降低了时间复杂度。 public class Main { public static int kthBiggest (int[]a,int k,i ...
分类:
其他好文 时间:
2020-12-01 11:48:36
阅读次数:
3
7-1 阅览室,感觉思路还好,但是写的太繁琐了,借鉴一下过的代码,又写了一遍;,代码: #include<bits/stdc++.h> using namespace std; int s[1010],w[1010]; int main() { int n; cin>>n; while(n--) { ...
分类:
其他好文 时间:
2020-11-26 14:11:33
阅读次数:
3