
算法
文章平均质量分 85
江苏的WSH2012
属地:江苏 身份:2024级新海高中少年班新生
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++中的队列和栈
💎💎🚀关注博主,后期持续更新系列文章编程中,数据结构是组织、管理和存储数据的有效方式,它使我们能够有效地执行各种操作。C++作为一种强大的编程语言,提供了一系列强大的数据结构,其中包括队列(Queue)和栈(Stack)。这篇文章将重点介绍和对比这两种数据结构。原创 2024-09-19 13:39:20 · 415 阅读 · 3 评论 -
论哈希是什么
💎💎🚀关注博主,后期持续更新系列文章哈希(Hash)是一种常见的密码学技术,用于把任意长度的消息转换成固定长度的摘要信息,并确保任何对原始消息的修改都会导致不同的摘要信息。哈希技术在信息安全、数据完整性验证和数字签名等方面有广泛的应用。原创 2024-09-16 09:55:47 · 2437 阅读 · 0 评论 -
选择vs冒泡,到底谁更强???
在这里,在内循环的每次迭代中,最小的元素都会被每个循环中的起始元素替换。冒泡排序算法时,在外循环的每次迭代中,都会找到最大的元素并将其与循环中的最后一个元素交换。在内部循环中,我们对两个连续元素进行成对交换。3、选择排序执行最少次数的交换来对数组进行排序,冒泡排序执行最大次数的交换来对数组进行排序。2、选择排序最好情况下的时间复杂度是 ,冒泡排序最好情况下的时间复杂度是。4.选择排序最坏情况下的时间复杂度为, 冒泡排序最坏情况下的时间复杂度为。6、选择排序不是一个稳定的算法,冒泡排序是一个稳定的算法。原创 2024-09-15 14:47:39 · 332 阅读 · 0 评论 -
论字符串
💎💎🚀关注博主,后期持续更新系列文章字符(char)与字符串(string)不同,字符由单引号包裹,字符串则由双引号包裹。很多字符串在一起,就可以组成一个字符串,如下图:字符串hello,就是由h、e、l、l、o这五个字符组成。字符串可以被看做是一个;所以,数组的语法同样适用于字符串,比如:通过下标获取单个字符。声明了一个字符串变量a,并赋值“hello”,输出字符串里的第一个字符,通过数组名+下标的方式输出。原创 2024-09-13 20:51:31 · 875 阅读 · 7 评论 -
20种算法目录
🚀欢迎互三👉: 💎💎。原创 2024-09-10 19:59:42 · 384 阅读 · 3 评论 -
PageRank算法
虽然PageRank算法不再是谷歌用于排序搜索结果的唯一算法,但它是谷歌公司使用的第一个排序搜索算算法,也是最著名的算法。截止至2019年9月24日,PageRank及其所有的相关专利已过期。PageRank算法的发展和应用仍在不断推进,为搜索引擎排名提供了重要的参考依据。PageRank算法的出现和应用,对于搜索引擎的发展和网页排名的提升起到了重要的作用。在未来,随着技术的不断进步和算法的不断优化,PageRank算法将继续发挥重要的作用,为用户提供更加精准和有效的搜索结果。原创 2024-09-09 21:06:03 · 1026 阅读 · 0 评论 -
最大流与最小割
最大流要解决的问题是从 S 到 T 怎么才能最大地将数据运到另一边。这个“数据”可以是水,或者网络数据包。举个例子在上面这个图中将数据从 S 运到 T,其中边的权值称为 Capacity 即,在这条边中流动的数据不能超过 Capacity 值,。这个图很简单,我们很容易就看出来最大流是 5。流动方向为那最小割是啥?就是一堆边的集合,这些边权重加起来应该是要等于最大流的值,且这些边都是从 S 那边到 T 这边的。原创 2024-09-09 21:03:04 · 937 阅读 · 0 评论 -
图像处理算法
💎💎图像处理是一种将数字图像转换为另一种形式的计算机处理技术。它可以用来改善图像的质量,提取图像中的信息,或者进行识别和分类等任务。其中,图像识别和处理算法是应用最广泛的一类图像处理技术之一,适用于很多领域,例如人脸识别、物体检测和医学影像分析等。原创 2024-09-09 20:47:58 · 626 阅读 · 0 评论 -
字符串匹配算法
💎💎KMP算法是一种高效的字符串匹配算法,用于在一个主串中查找一个模式串的出现位置。它通过利用已经匹配过的字符信息,避免不必要的回溯操作,提高了匹配的效率。KMP算法的核心思想是构建一个最大公共前后缀表(也称为部分匹配表),根据该表在匹配过程中确定模式串向后移动的位置。下面将详细介绍KMP算法的实现步骤和Java代码。原创 2024-09-09 20:44:13 · 720 阅读 · 0 评论 -
论递归算法
💎💎🚀关注博主,后期持续更新系列文章。原创 2024-09-09 20:38:07 · 775 阅读 · 0 评论 -
最小生成树
💎💎。原创 2024-09-09 20:14:12 · 770 阅读 · 0 评论 -
一些程序设计语言
💎💎🚀关注博主,后期持续更新系列文章程序设计语言(Programming Language)作为现代信息技术的重要基石,不同的语言为不同的应用领域和开发需求提供了独特的优势。从面向对象编程语言到函数式编程语言,选择正确的编程语言不仅决定了开发效率,也影响到项目的长期可维护性。针对不同场景、项目规模、团队能力等因素,合理选择程序设计语言是至关重要的。而在现代软件开发中,掌握多种语言的能力已经成为程序员职业发展的重要优势。原创 2024-09-09 13:02:01 · 3997 阅读 · 3 评论 -
深度优先搜索,广度优先搜索
以经典的迷宫图来看看如何遍历。深度优先搜索的主要思路是:从图中一个未访问的顶点 V 开始,沿着一条路一直走到底,然后从这条路尽头的节点回退到上一个节点,再从另一条路开始走到底……不断递归重复此过程,直到所有的顶点都遍历完成,它的特点是不撞南墙不回头,先走完一条路,再换一条路继续走。如何从入口1出发,遍历整颗树?步骤一:先遍历节点1的所有节点——2,3,4。步骤二:再分别遍历节点2,3,4的所有节点——5,6,7,8。步骤三:再分别遍历节点5,6,7,8的所有节点——9,10。原创 2024-09-08 11:21:01 · 972 阅读 · 0 评论 -
论动态规划和贪心算法
动态规划与暴力破解的区别在哪里:暴力破解明显的特征,我们需要考虑到所有的边界条件,这样带来的问题就是if特别的多。而动态规划所有的边界条件就是一共有几种可能。对于动态规划来说,我们只关系结果,并不关心结果是怎么算出来的。譬如,求出f(15),只需要知道f(14),f(10),f(4)的值。其他信息并不需要。所以我们就可以将其简化和相同问题的递归。也就是“学术界”为其总结的俩个性质:无后效性最优子结构而这就是动态规划。原创 2024-09-08 10:46:12 · 1022 阅读 · 0 评论 -
论选择排序
排序就是算法。选择排序(Selection sort)是一种简单直观的排序算法。选择排序是不稳定的排序方法。eg:序列[9,9, 1]第一次就将第一个[9]与[1]交换,导致第一个9挪动到第二个9后面一般面试的时候才会用到选择、冒泡排序。原创 2024-09-08 10:35:41 · 597 阅读 · 0 评论 -
论插入排序算法
所谓排序,就是整理表中的元素,使之按关键字递增或递减的顺序排列。原创 2024-09-08 10:25:26 · 820 阅读 · 0 评论 -
论归并排序算法
💎💎🚀关注博主,后期持续更新系列文章归并排序(Merge Sort)是建立在归并操作上的一种有效,稳定的排序算法,该算法是采用的一个非常典型的应用。原创 2024-09-08 10:15:26 · 674 阅读 · 0 评论 -
关于快速排序算法的Python详解
Wind数据显示,截至10:50,离岸人民币对美元汇率报7.3105元,较前收盘价跌25基点,盘中最低报7.3115元;在岸人民币对美元汇率报7.2734元,较前收盘价跌20基点,盘中最低报7.2736元,均创去年11月中旬以来新低。中国银行研究院发布的《2024年三季度经济金融展望报告》显示,今年上半年人民币汇率在亚洲货币中表现稳定,随着一些发达经济体启动降息,下半年人民币有望走向升值。Wind数据显示,截至记者发稿时,今年以来,离岸、在岸人民币对美元汇率累计下跌2.57%、2.55%。原创 2024-09-02 13:48:37 · 163 阅读 · 0 评论 -
冒泡排序算法
💎💎。原创 2024-09-08 09:55:49 · 1026 阅读 · 0 评论 -
论编程中常见的20种算法
选择一个基准值,将列表分成两个子列表,一个包含小于基准值的元素,另一个包含大于基准值的元素,然后对两个子列表递归地应用同样的过程,最终得到排序后的列表。插入排序算法将列表分为已排序和未排序两部分,对未排序部分的每个元素,逐个将其插入到已排序部分的正确位置,从而扩大已排序部分。选择排序算法将列表分为已排序和未排序两部分,每次从未排序部分选择一个最小(或最大)的元素,并将其放入已排序部分的末尾,扩大已排序部分的长度。它采用分治的思想,将问题分解为较小的子问题,并通过合并子问题的解来解决整个问题。原创 2024-09-08 09:37:14 · 1407 阅读 · 7 评论 -
二叉树的相关概念
提到树(Tree),大家脑海中首先浮出的画面应该是类似这样的:之所以我们会用“树”这个名词来命名具有“一对多关系”特性的数据结构,是因为树刚好能够很形象地诠释这种特性。我们来分析一下。看一下上图中的树(土地以上的部分),它有一个树根,从树根开始往上分叉,主树干分叉成许多次树干,次树干又继续分叉为许多小树枝,小树枝上有许多叶子……原创 2024-09-07 19:58:41 · 1012 阅读 · 0 评论 -
Dijkstra算法,Floyd算法
Dijkstra算法是典型的最短路径算法,用于计算图或网中某个特定顶点到其他所有顶点的最短路径,以起始点为中心向外层层扩展,直到扩展到终点为止,适合计算单源最短路径,时间复杂度是O(N^2)。用到的是贪心法。Floyd算法是解决任意两点间的最短路径的一种算法,可以正确处理有向图或负权的最短路径问题,同时也被用于计算有向图的闭包。Floyd算法的时间复杂度是O(N^3)。原创 2024-09-07 19:48:47 · 874 阅读 · 0 评论 -
线索二叉树
线索二叉树是一种物理结构为二叉树,但遍历方式更类似于链表的数据结构。它是为了加快二叉树的遍历速度而提出的。在二叉树中,结点的空指针域被用来存放指向某种遍历次序下的前驱和后继结点的指针,这种指针被称为线索。带有线索的二叉树称为线索二叉树。具体来说,中序线索二叉树是在中序遍历的基础上建立的,其中每个结点都有两个指针域:`lchild` 和 `rchild`。在普通的二叉树中,如果某个结点的左子树为空,则 `lchild` 为空;如果右子树为空,则 `rchild` 为空。原创 2024-09-01 13:56:18 · 485 阅读 · 0 评论 -
冒泡排序
冒泡排序是一种基本的排序算法,它通过反复交换相邻两个元素的位置,使得每一轮循环都能将未排序部分中的最大元素移动到数组的末尾。因为排序过程中较小的元素像气泡一样逐渐浮到数组的顶部,故称为冒泡排序。原创 2024-09-01 10:42:47 · 385 阅读 · 0 评论 -
函数的基本知识
一个完整的函数定义主要包括以下部分:返回类型:调用函数之后,返回结果的数据类型;函数名:用来命名代码块的标识符,在当前作用域内唯一;参数列表:参数表示函数调用时需要传入的数据,一般叫做“形参”;放在函数名后的小括号里,可以有0个或多个,用逗号隔开;函数体:函数要执行的语句块,用花括号括起来。函数一般都是一个实现了固定功能的模块,把参数看成“输入”,返回结果看成“输出”,函数就是一个输入到输出的映射关系。原创 2024-09-01 10:40:57 · 650 阅读 · 0 评论 -
论素数的历史
素数是数论的研究对象,指的是只能被1和它自身整除的大于1的自然数。素数有无限多吗?分布情况如何?这些貌似简单的素数问题对数学家而言却魅力无穷。并且,这些简单问题牵涉甚广,素数分布问题的研究涉及到许多领域,推进了数学研究多方面的发展。有关素数的第一个猜想应该是两千三百多年前的欧几里得提出的,称之为“素数无限多”的命题。欧几里得还给出了最简单的证明,用的是反证法。此外,古希腊还有一个在n不大的情况下实用的埃氏筛法,可以简单地把不大于根号n的所有素数的倍数剔除,从而 “筛出” 自然数n以内的全部素数,见下图。原创 2024-08-26 12:16:36 · 914 阅读 · 0 评论 -
“拓扑排序”的简单解释
拓扑排序”在中文里是一个科学词汇,而在英文里却代表的是两种不同领域的科学涵义,一种指的是topological sort,是计算机科学或图论领域的术语;另一种指的是topological order,是凝聚态物理领域的术语。这两者都包含“拓扑”与“排序”,但是如果你跟一个搞计算机或图论的谈“拓扑排序”,与跟一个搞物理的谈“拓扑排序”,你会得到不同的具体解释。所以,有的人会丈二和尚摸不着头脑,搞不清楚到底“拓扑排序”是什么?是此“拓扑排序”、还是彼“拓扑排序”?原创 2023-09-24 16:08:47 · 135 阅读 · 0 评论