自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 动态规划——所有可能的真二叉树

最近正在学习动态规划,今天就在力扣上遇到了相应的题目。递归方法——记忆化递归——动态规划。然后通过记忆储存避免递归的重复运算。最后把它写成动态规划的形式。

2024-04-02 16:04:41 432 1

原创 数据结构——队列、最大堆、优先级队列

队列是一种只允许在一端进行插入操作,而在另一端进行删除操作的线性表。队列,顾名思义,就好像我们在超市结账排队一样,先排进队的人先买单,先进入队列里的元素先出队,也就是 先进先出的特点(First In First Out,FIFO),允许插入元素的一端称为队尾,允许删除元素的一端称为队首。

2024-04-01 13:18:01 1579

原创 数据结构——树、二叉树、二叉搜索树

树结构是一种数据结构。它由结点以及连接结点的边构成,如图所示:其中圆点表示结点,实线表示连接结点的边黑色的结点我们称为根,是一棵树的起始点,如果一棵树有根,我们称之为“有根树”树有以下几个概念:父结点、子结点、兄弟结点:如图中的结点1、2、3,它们具有共同的父结点,也就是结点0;而结点6、7、8,它们的父结点是结点2.相应地,我们也说结点6、7、8是结点2的子结点,而结点6、7、8相互称为兄弟节点(具有相同的父节点)叶结点:没有子结点的结点,如结点4,结点11内部结点:除叶结点以外的结点。

2024-03-31 23:51:45 564 1

原创 数据结构——栈、括号问题及其变式

栈是一种数据结构,其按照最后进入栈的数据最先出栈的规则管理数据(Last In First Out,LIFO)其中栈中最后一个元素的下一个位置称为栈顶,相应地也存在栈底,当栈顶到达预先开好的栈的空间的时候,称为栈满;当栈内没有任何元素的时候,称为栈空一开始我们可能不理解,这样的奇怪的数据结构特点有什么作用呢?没关系,我们就先记住,后面在使用栈的时候自然就明白了。

2024-03-30 00:31:46 623 2

原创 利用归并排序的局部有序性——计算逆序数

我们来看这样一道题目:给出逆序数的定义:在数列A={}中,如果有一组数(i,j)满足,且i

2024-03-29 00:29:45 374 3

原创 高等排序——分割与快速排序

快速排序在分割的过程中会交换不相邻的元素,因此属于不稳定的排序算法快速排序的效率与key值的选取息息相关,如果在分割时能恰好选到中间值,则整个过程与归并排序一样,大致分为层,平均时间复杂度为O(nlogn),是一般情况下最高效的排序算法。若像我的上述代码(前后指针法)一样,采用固定的方式选取key值,那么当处理某些顺序的数据(如已经排序完毕的数组)的时候,效率会大打折扣,最坏的情况,时间复杂度甚至高达O(),甚至有可能导致递归的深度过大而栈溢出。

2024-03-28 22:27:47 1625 1

原创 高等排序——归并排序

前面学习了初等排序,其时间复杂度一般为O(),当面对庞大的输入数据时,这种排序效率就显得十分低下,在这里,我们运用递归与分治的思想,可以实现更加高效的排序算法今天我学习的是归并排序。

2024-03-28 00:25:17 136 1

原创 初等排序——插入排序、冒泡排序、希尔排序

对于一个给定包含n个元素的数组,我们总需要将其按照相对大小进行排序,进而方便进行数据处理。如排序学生的成绩,员工的薪水。这就设计到了排序算法今天我学习的是三种初等排序方法——插入排序、冒泡排序、希尔排序对于不同的排序算法,我们有几个重要的关注点:1.时间复杂度:是数组元素n的函数,越低效率越高2.排序的稳定性:当数据中存在2个或2个以上的数值相等的元素时,这些元素在排序处理前后的顺序不变,被称为排序的稳定性。

2024-03-26 22:56:19 538

原创 数值算法——快速幂

在上一篇素性检验中,我们运用了库函数pow来求得的值,这是非常方便快速的。如果不使用pow,我们如何编写一个函数来求得一个数的整数次幂呢?

2024-03-26 10:38:56 281

原创 数值算法——查找素因子,查找素数,素数检验

素数,是大于1的自然数,其唯一的因子是1及其本身。相对的,合数是大于1的非素数的自然数。素数的作用:由于很难将两个素数的乘积重新分解为因子,因此,某些类型的密码可以使用两个大素数的乘积来提供安全性。因此,下面将学习关于素数的一系列算法。

2024-03-26 08:59:08 1589

原创 数值算法——最大公约数

对于数a,b,假定a>b,我们遍历i=1到i=b,并保存a%i==0&&b%i==0的i的最大值,此为GCD(a,b)。为了准备五月初转专业的程序设计考试,一开始在力扣上刷了很多的题目,发现里面的算法难度较高,我学习的效率较低,于是决定开始系统地学习算法基础。在这里,由公式的性质,我们无需判断a与b的大小关系(假设a<b,则a%b的值等于a,a与b自动交换了位置)很显然,这个公式具有迭代的性质,我们可以运用循环语句算出GCD(a,b)该法的关键在于运用了数学公式——GCD(a,b)=GCD(b,a%b)

2024-03-25 23:30:26 119

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除