• 06.3 插入排序

    插入排序详解 1. 引言 插入排序是一种简单而有效的排序算法,其核心思想是逐步构建有序序列。在每一轮遍历中,将未排序部分的元素逐个插入已排序部分的合适位置。 2. 插入排序原理 [!NOTE] 插入排序的基本思路是将一个元素插入已经有序的部分,通过不断地扩大已排序部分的范围,最终完成整个数组的排序。 3. 插入排序步骤 插入排序的具体步骤如下: [!TIP] 1. 从第二个元素开始,将其与已排序部分的元素逐个比较。 2. 如果当前元素小于已排序元素,将当前元素插入到合适的位置。 3. 重复以上步骤,直至整个数组有序。 4. ...

    2024 年 7 月 22 日 星期一
    2
    阅读全文
  • 06.2 选择排序

    摘要: 选择排序是一种简单直观的排序算法,通过多次遍历数组,在每轮遍历中选择未排序部分的最小元素并将其放置到已排序部分的末尾。选择排序的时间复杂度为O(n^2),适用于处理小规模数据集或对稳定性不作要求的情况。虽然不如快速排序或归并排序等高效算法,但选择排序简单易懂,不需要额外内存空间。

    选择排序详解 1. 引言 选择排序是一种简单直观的排序算法,其核心思想是通过多次遍历数组,在每轮遍历中选择未排序部分的最小元素并将其放置到已排序部分的末尾。 2. 选择排序原理 选择排序的基本思路是通过不断选择最小的元素,逐步构建有序序列。在每一轮遍历中,找到未排序部分的最小元素,并与未排序部分的第一个元素交换位置,将其纳入已排序的部分。 3. 选择排序步骤 选择排序的具体步骤如下: 在未排序部分选择最小元素。 将最小元素与未排序部分的第一个元素交换位置,将其纳入已排序部分。 重复以上步骤,直至整个数组有序。 4. 选择排序代码 ...

    2024 年 7 月 22 日 星期一(已编辑)
    2
    阅读全文
  • 06.1 冒泡排序

    冒泡排序详解 1. 引言 冒泡排序是一种简单直观的排序算法,其基本思想是通过多次遍历数组,比较相邻元素并交换,使得每一轮遍历后最大的元素都位于数组末尾。 2. 冒泡排序原理 冒泡排序的核心思想是相邻元素两两比较,将较大的元素逐步交换到右侧,通过多轮遍历实现整体排序。 3. 冒泡排序步骤 冒泡排序的具体步骤如下: 从第一个元素开始,依次比较相邻元素。 如果前一个元素大于后一个元素,则交换它们的位置。 继续比较下一组相邻元素,重复步骤2。 一轮遍历后,最大的元素将移动到数组末尾。 重复以上步骤,每轮遍历确定一个最大元素的位置...

    2024 年 7 月 22 日 星期一
    3
    阅读全文
  • 06.0 排序算法概述与时间复杂度

    排序算法概述 1. 引言 在计算机科学领域,排序是一项基础而重要的任务。排序算法用于将一组数据按照一定顺序排列,以提高后续操作的效率。排序算法分为内部排序和外部排序,同时在选择排序算法时需要考虑时间复杂度和空间复杂度。 2. 内部排序与外部排序 2.1 内部排序 内部排序是指所有排序操作都在内存中完成的过程。常见的内部排序算法有冒泡排序、选择排序、插入排序、归并排序和快速排序等。这些算法适用于数据规模较小、能够一次性加载进内存的情况。 ...

    2024 年 7 月 22 日 星期一
    1
    阅读全文
  • 05. 递归

    递归:无尽的迭代之美 在计算机科学中,递归是一种强大的编程技术,它通过将问题拆分成更小的、相似的子问题来解决复杂的任务。 1. 什么是递归? 1.1 基本概念 递归是一种通过调用自身来解决问题的方法。在递归过程中,问题会被分解为规模较小、结构相似的子问题,直到达到某个基本条件,然后逐层返回结果,最终得到原始问题的解。 1.2 递归 vs. 迭代 递归与迭代(循环)是解决问题的两种不同方式。递归通常更加简洁、优雅,但有时可能导致性能问题。迭代则通常更直观,更容易理解,且在一些情况下性能更好。 2. 递归的基本原理 2.1 递归的特征 *...

    2024 年 7 月 22 日 星期一
    1
    阅读全文
  • 使用常识知识图和神经模型构建强大且可解释的人工智能

    Chapter9:Building Robust and Explainable AI with Commonsense Knowledge Graphs and Neural Models 总览 常识推理的背景和挑战:作者回顾了早期的基于逻辑和知识库的常识推理方法,以及近年来的基于神经模型的方法,指出了它们的优缺点和局限性,提出了构建健壮和可解释的常识推理系统的开放挑战。 常识知识图谱的组织:作者介绍了他们开发的常识知识图谱(CSKG),它是一个将七个不同来源的常识知识整合在一起的超关系图,包括概念、词汇、视觉、过程等方面的知识。作者还介绍了他们如何将常...

    2024 年 7 月 22 日 星期一
    6
    阅读全文
  • 神经符号与人工智能

    摘要 “Compendium of Neurosymbolic Artificial Intelligence”探讨如何将符号推理和神经或连接主义方法(例如深度学习)结合起来的各种方法。这本书包含30篇邀请论文,它们探索了定义和开发成功系统以结合这两种方法的不同途径。每种策略都有明显的优势和劣势,大多数的目标是在符号系统的严格透明性和灵活但高度不透明的神经应用之间找到一些有用的中间地带。这些论文按主题组织,前四篇是该领域的概述或调查。这些之后是涵盖神经符号推理、神经符号架构、深度学习的各个方面,以及最后两章关于自然语言处理的论文。所有论文在出版前都经过内部审查。这本书旨在继续和扩展之...

    2024 年 7 月 22 日 星期一
    2
    阅读全文
  • MyBatis

    01. MyBatis提高持久层数据处理效率 一、Mybatis简介 1.1 简介 https://mybatis.org/mybatis-3/zh/index.html MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下, iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到Github。 M...

    2024 年 7 月 22 日 星期一
    4
    阅读全文
  • 04.3 中缀转后缀

    中缀表达式转后缀表达式与栈的妙用 1. 中缀表达式与后缀表达式 1.1 中缀表达式的特点 中缀表达式是日常最常见的数学表达形式,其中运算符位于两个操作数之间,例如:3 + 4 * 5。 1.2 后缀表达式的特点 后缀表达式是将运算符置于操作数之后的形式,例如:3 4 5 * +。 2. 中缀表达式转后缀表达式 2.1 转换规则 中缀表达式转后缀表达式的转换规则如下: 从左至右遍历中缀表达式的每个元素。 如果是操作数,直接输出到后缀表达式。 如果是运算符: 如果栈为空,或者栈顶元素是左括号 "(",直...

    2024 年 7 月 18 日 星期四(已编辑)
    1
    阅读全文
  • 04.2 波兰式

    栈与前缀、中缀、后缀表达式的妙用 栈是一种基本的数据结构,而前缀、中缀和后缀表达式是数学中描述运算关系的三种不同形式。 1. 栈的基本概念 1.1 栈的特性 栈是一种遵循后进先出(Last In, First Out,LIFO)原则的数据结构。在栈中,元素的添加和删除操作只能在栈顶进行,而栈底的元素是最后被添加的,也是最后被访问的。 1.2 栈的实现方式 栈可以通过数组或链表来实现。使用数组时,需要维护一个指针指向栈顶元素;使用链表时,每个节点包含数据和指向下一个节点的引用。 示例(Python): clas...

    2024 年 7 月 18 日 星期四
    3
    阅读全文
关于关于本站关于我关于此项目
更多时间线友链监控
联系写留言发邮件GitHub

© 2020-2025 莫叶. | RSS | 站点地图 | | Stay hungry. Stay foolish.

Powered by Mix Space&. | 浙 ICP 备 2024104483 号 |