斯坦徐的发际线大敌
数据结构和算法---Java实现
斯坦徐和他的代码兄弟
一个头发茂盛的猴赛雷
展开
-
堆排序算法
今天学习了下韩顺平老师的数据结构和算法视频,去复习了一下堆排序,作为一种效率特高的排序算法,堆排序算法可谓是与它名字一样难以理解,今天就来总结总结堆排序算法:基本介绍:堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复 杂度均为O(nlogn),它也是不稳定排序。堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆,反之则为小顶堆,注意 : 没有 要求结点的左孩子的值和右孩子的值的大小关系。一般升序采用大顶堆,降序采用小原创 2020-12-30 16:31:47 · 244 阅读 · 0 评论 -
leetcode每日一题: 按要求补齐数组
题目:给定一个已排序的正整数数组 nums,和一个正整数 n 。从 [1, n] 区间内选取任意个数字补充到 nums 中,使得 [1, n] 区间内的任何数字都可以用 nums 中某几个数字的和来表示。请输出满足上述要求的最少需要补充的数字个数。示例:输入: nums = [1,3], n = 6输出: 1 解释:根据 nums 里现有的组合 [1], [3], [1,3],可以得出 1, 3, 4。现在如果我们将 2 添加到 nums 中, 组合变为: [1], [2], [3], [1,3原创 2020-12-29 12:53:12 · 242 阅读 · 1 评论 -
栈的代码实现
一、采用数组实现栈import java.util.Arrays;/** * 数组实现栈 * @param <T> */class Mystack1<T> { //实现栈的数组 private Object[] stack; //数组大小 private int size; Mystack1() { stack = new Object[10];//初始容量为10 } //判断是否为空原创 2020-12-23 22:47:01 · 306 阅读 · 0 评论 -
二分查找算法
https://www.cnblogs.com/yellowgg/p/11272908.htmlhttps://www.cnblogs.com/kyoner/p/11080078.html原创 2020-12-02 00:02:57 · 234 阅读 · 2 评论 -
Java优先队列PriorityQueue
今天刷力扣每日一题的时候遇到了一个“重构字符串的问题”,我在观阅题解后发现是用贪心算法+最大堆来解决的,于是恶补了这两方面的知识:关于最大(小)堆是指最大(小)堆是指在树中,存在一个结点而且该结点有儿子结点,该结点的data域值都不小于(大于)其儿子结点的data域值,并且它是一个完全二叉树。这里不免就有人问了:完全二叉树的定义又是什么?完全二叉树不用多说先上图:上面列举了几种典型的完全二叉树的误区图和辨识图,这里我再通俗地定义一下:1.首先是二叉树2.去除最底的两层,上面部分是一个满二叉原创 2020-11-30 23:52:52 · 210 阅读 · 0 评论