算法教程

     

冒泡排序、归并排序与快速排序比较

14

排序是以特定顺序组织一组事物或片段。根据具体标准,例如数值、字母顺序或其他比较组,排序可以在升序和降序之间变化。分类代表计算机科学的核心操作,可在各种应用程序中有效地检索信息、分析数据、执行搜索和构建.

Java中将矩阵元素设置为零的三种算法方法

18 11K

矩阵是各种计算机科学、数学和工程领域中使用的基本数据结构。在某些情况下,我们可能需要根据特定条件或要求将某些矩阵元素设置为零。在本教程中,我们将讨论在 Java 中有效完成此任务的各种方法。理解问题给.

Java Stream API:实现 Kruskal 算法

19 4K

使用 Java Stream API 实现最小生成树的 Kruskal克鲁斯卡尔 算法Kruskal 算法是一种流行的方法,用于查找连通无向图的最小生成树 (MST)。该算法的工作原理是按权重升序选择.

数学是结构,不是数字!

87

这篇文章是关于数学哲学中的结构主义的深入探讨,它摘录自2021年由麻省理工学院出版社出版的《数学哲学讲座》一书。这本书是在牛津大学进行的数学哲学系列讲座的基础上编写的,它从数学的角度出发,自然地从数学.

10款解决数学问题的最佳AI工具

69 5K

数学对于许多学生来说是令人生畏的。人工智能改变了数学的理解和记忆方式,使其变得更加有趣。您可以了解可轻松解决数学问题的 10 种最佳人工智能工具及其优缺点。这些工具将增强您的数学能力并帮助您取得优异成.

Java中查找数组多数元素的4种方法

25 7K

在本教程中,我们将探索查找数组中多数元素的不同方法。对于每种方法,我们将提供各自的代码实现以及时间和空间复杂性的分析。让我们了解一下查找数组中多数元素的问题。我们得到一个整数数组,我们的目标是确定其中.

Java中查找列表的峰值元素

25 11K

数组中的峰值元素对于许多算法都很重要,可以提供对数据集特征的宝贵见解。在本教程中,我们将探讨峰元素的概念,解释其重要性并探索在单峰和多峰场景中识别它们的有效方法。什么是峰值元素?数组中的峰值元素定义为.

什么是反对称关系?

122

反对称关系是集合上的一种二元关系,其中在一个方向上彼此相关的任何两个不同元素不能在相反方向上相关。例如,考虑整数集合上的关系“小于或等于”(≤)。这种关系是反对称的,因为如果 a ≤ b且b ≤ a,.

Java中Blowfish加密算法

73 7K

Blowfish加密算法最初设计为DES加密算法的替代方案,是当今最流行的加密算法之一。Blowfish 是一种对称密钥分组密码,由Bruce Schneier于 1993 年设计。该算法的块大小为6.

Java中在二叉搜索树中查找节点的父节点

41 8K

二叉搜索树(BST)是一种帮助我们有效解决现实世界问题的数据结构。什么是二叉搜索树?BST 是一棵树,其中每个节点最多指向两个节点,通常称为左子节点和右子节点。此外,每个节点的值都大于左子节点且小于右.

Java中查找给定数字下最大素数的2种方法

34 2K

寻找小于给定数的最大素数是计算机科学和数学中的一个经典问题。在这个简短的教程中,我们将探讨在 Java 中解决此问题的两种方法。1、使用暴力让我们从最直接的方法开始。我们可以通过从给定数向后迭代直到找.

陶哲轩:好的数学

64 4K

数学纯粹是逻辑性的!但数学的教学、它的价值、它的用途和它的运作方式充满了细微差别。那么什么是“好”数学呢?作为菲尔兹奖、数学突破奖和麦克阿瑟奖学金的获得者陶哲轩是当今最受尊敬、最多产的数学家之一。他与.

黄仁勋:不要学习编码

275 1 2K

不要学习编码:Nvidia 创始人黄仁勋建议走一条不同的职业道路英伟达(Nvidia)是一家由老牌显卡公司转型为人工智能巨头的公司,去年加入了 1 万亿美元估值俱乐部,随着 ChatGPT 等大型语言.

Java中检查字符串是否互相旋转或镜像反射

35 10K

当我们使用 Java 工作时,字符串操作和比较是日常任务。字符串是原始字符的序列,在 Java 中,它包装在String类中。尽管两个字符串可能是不同的对象,但我们可以比较它们的内部字符并检查例如它们.

Java中切杆问题的3种解决方案

33 7K

切杆问题(棒切割:Rod Cutting Problem)是一个经典的优化问题,涉及找到将棒切割成碎片的最佳方法,以最大化总收入。什么是切杆问题假设我们有一根长度为 n 的杆,我们可以灵活地将这根杆切.

Rust中实现 API 速率限制

71 10K

在本教程中,我们将采用 "滑动窗口 "算法,通过一个动态周期来检查请求历史记录,并使用一个基本的内存哈希表来存储用户及其请求时间。我们还将了解如何使用 tower-governor 为您配置速率限制。.

形式验证的历史和方法

37 3K

这篇文章主要介绍了形式验证领域的历史和数学起源,涉及了形式推理的历史演变、可证明的递归函数、逆向数学和构造性数学中的类型论。文章还提到了形式验证对编程语言理论的影响,包括类型系统的发展和依赖类型语言的.

规则引擎与机器学习比较

75

规则引擎使用预定义的逻辑来做出决策,而机器学习算法则从数据中学习来做出预测或决策。规则引擎和机器学习代表了计算机系统中两种根本不同的决策和预测方法。虽然规则引擎根据人类设置的明确的预定义规则运行,但机.

用Python代码解释大语言模型的工作原理

158 1 7K

ChatGPT 和 GPT-4 等大型语言模型 ( LLM ) 自然语言处理的发展标志着一个重要的里程碑,这些模型在基于文本的任务中展示了接近人类的理解能力。除此之外,OpenAI 引入的大型多模态模.

复杂自适应系统的一种算法语言定义

44 4K

这篇文章介绍了复杂自适应系统(简称CAS)的定义和特征。什么是复杂自适应系统CAS? 复杂自适应系统CAS的定义:包括多个相互连接和相互依赖的交互代理,并具有非线性行为。 复杂自适应系统的关键特征:包.

Python中求未排序数组中三角形数量的三种方法

29 5K

在本教程中,我们将编写 Python 程序来计算三角形的可能数量。我们给出了一个未排序的数组,我们需要确定使用来自正整数的无序数组中的三个不同值可以创建多少个三角形。当任意两个值(或边)之和大于第三个.

Python中用双向链表实现快速排序

58 4K

基于比较的排序算法“快速排序”使用分而治之的策略。它将剩余成员分为 2 个子数组(或子列表),具体取决于它们是否小于或大于用作枢轴的元素,该元素从数组中选择为“枢轴”元素(或者,在我们的实例,双向链表.

Java中将零移至数组末尾

51 1 3K

当我们在 Java 中使用数组时,一项常见任务是重新排列数组以优化其结构。一种这样的场景涉及将零移动到数组的末尾。在本教程中,我们将探索使用 Java 实现此任务的不同方法。在我们深入实现之前,我们首.

Java中查找列表中第一个非重复元素的4种方法

51 6K

在本教程中,我们将探讨查找列表中第一个非重复元素的问题。我们将首先了解问题陈述,然后实施一些方法来实现预期结果。给定一个元素列表,任务是找到列表中第一个不重复的元素。换句话说,我们需要识别列表中仅出现.

Python中使用LightGBM

61 4K

人工智能领域取得了巨大进展,推动了不同算法的进步来处理复杂的任务。其中一种算法是 LightGBM,是 Light Gradient Boosting Machine 的缩写。LightGBM 因其处.

什么是 TABU 搜索?

65 7K

塔布TABU搜索是一种用于解决优化问题的元启发式算法。其名称源于阿拉伯语 "Tabu",表示任何被禁止的事物。通过保持搜索过程的短期记忆,并利用这些知识将搜索引向有希望的区域,塔布搜索可以有效地探索解.

Python中使用多个属性实现列表排序的三种方法

63 5K

我们可以通过多种方式对 Python 列表进行排序。有多种算法可以对列表进行排序。对一维 Python 列表进行排序非常简单。它需要直接应用可用算法之一。然而,给定一个嵌套的 Python 列表,我们.

GoRules:Go的业务规则引擎

102 6K

ZEN Engine 是一个跨平台、开源业务规则引擎 (BRE)。它是用 Rust 编写的,并提供NodeJS、Python和Go的本机绑定。 ZEN Engine 允许从 JSON 文件加载和执行 .

Python中4个算法的特点

40 2K

Python 算法对于任何技术爱好者、软件工程师或数据科学家来说都是最重要的工具。我们用 Python 编写的算法不是特定于语言的,并且它们没有任何标准规则来解释它们应该如何准确编写。现在,这仅意味着.

Python中匈牙利算法

48 5K

作为一名信息研究员或编程设计师,您可能会在很多时候遇到简化困难,他们要求以最佳方式将资源分配给任务。其中一个问题是任务问题,其中我们应该根据资产的成本或价值决定如何最好地将资产分配给练习。真正解决这个.