堆排序(Heapsort) 堆排序(Heapsort) 堆排序指利用堆数据结构所设计的一种排序算法, 排序 首先建立大顶堆,然后将堆顶的元素取出,作为最大值,与数组尾部的元素交换,并维持残余堆的性质; 之后将堆顶的元素取出,作为次大值,与数组倒数第二位元素交换,并维持残余堆的性质; 以此类推,在第 \(n-1\) 次操作后,整个数组就完成了排序。 如何从一个无序序列建成一个堆? 如何将堆顶的元素取出之后, 算法 排序 堆排序
稳定匹配(stable Matching)问题 在学 UCB CS70时,有一个note专门讲了这问题————稳定匹配问题,用了两天时间稍微理解了一些些。 稳定匹配问题 提议与拒绝算法(The Propose-and-Reject Algorithm) Note 上就是这么命名的,也称盖尔-沙普利算法(Gale–Shapley algorithm)。 每个职位(男士)向自己优先列表中尚未拒绝的最优先候选人提出邀请。 每位候选 Math Math Stable Matching
UCB CS70: discrete Math and probability theory 集合的复习以及数学标记 集合 集合可以包含任何东西,包括集合,任何元素。如过元素 \(x\) 在集合 \(A\) 中,那么记作 \(x \in A\)。如果 \(y\) 不属于 \(A\) 中,那么记作 \(y \notin A\)。 集合的基本属性: 集合中不存在顺序 如果\(A,B\)两个集合相等,那么记作 \(A = B\) 基数(Cardinality) 集合中 Discrete mathematics CS70 Discrete mathematics 离散数学
CS50笔记(查漏补缺) 准备一个暑假在跑外卖的时候干点有用的事,就从学习CS50开始吧,正好学点自己不知道到的知识。 2024-07-17~2024-08-17 结束正好用时一个月,也终于结束了,因为不是零基础,所以有些课程跳了,有的太简单了,还是挺有感慨的,以前发现自己编程同龄人无敌,现在才发现任重道远,开学后要好好学学指针。 并归排序 还是基础功不太扎实,连这个都不知道。 归并排序基于分治思想将数组分段排序 CS50 C语言 SQL Python 算法
git 学习(长期) Git 背景 最经换电脑了,电脑里的东西全得转移,真的麻烦,搞这个博客就花了好长时间来 git,借此机会想来学习一下 git 相关知识,慢慢学。 版本控制系统 集中式版本控制系统: 集中式的版本控制系统,所有的版本库是放在中央服务器中的,也就是说我们每一次的修改上传都是保存在中央服务器中的。中央服务器就是个大仓库,大家把产品都堆里面,每一次需要改进和完善的时候,需要去仓库里面把文件 Git Git
Linux 学习 1 Linux 文件权限学习 用户与用户组 文件拥有者(root) 一般用户组 其他人 文件权限 在终端输入 ls -al 后,就会出现一堆东西,其中在每一行的前面的是文件的权限,共有10个字符, 第一个字符代表这个文件是目录、文件或链接文件。 d 则是目录 - 则是文件 l 则是链接文件 接下来三个为一组,共三组;其中 r 表示可读,w 表示可写,x 表 学习随笔 Linux
使用 Python opencv 缩放图像 突发奇想来用 Python 来缩放图像,搜到可以用 opencv 来实现功能,就稍微了解一下,当然 opencv 的功能不只这些。 注意:此处所有 cv 在实际写时改成 cv2 或者在导入库时加入一句 import cv2 as cv 基本功能 读取图像 可以用 cv.imread() 来读取图像,一共有两个参数,第一个提供图片所在目录,第二个是一个标志,表示读取的方式: c Python opencv
Java学习笔记 Java 学习 Java 的基本模板: 12345678import java.util.*;import java.io.*;public class Main { public static void main(String[] args){ // Do somethings; }} Java 的输入不是像 c++ Java Java
ABC235E-MST+1题解 ABC235E MST+1 题解 题目大意 给你一个图 \(G\) 含有 \(n\) 个顶点和 \(m\) 条边,给出 \(Q\) 次询问,询问所多输入的边加上原图 \(G\) 的最小生成树是否是存在 \(e_i\),存在输出 Yes 不存在输出 No。 思路 首先我们可以想到用最简单的方法,在每次询问时都做一次 Kruskal 算法,如果这个边被取到了,那么输出 Yes,反之亦然。 算法 Atcoder Kruskal 最小生成树