当前位置: 首页 > news >正文

Java常见排序算法及代码实现

1、选择排序算法

选择排序(Selection Sort)是一种简单直观的排序算法,它的工作原理是每次从未排序部分选择最小(或最大)的元素,将其放到已排序部分的末尾。

2、冒泡排序算法

冒泡排序(Bubble Sort)是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复进行的,直到没有再需要交换的元素为止。

3、插入排序算法

插入排序的基本思想是将待排序序列分为已排序区间和未排序区间,然后每次从未排序区间取出一个元素,将其插入到已排序区间的合适位置中,使得插入后仍然保持已排序区间有序。重复这个过程,直到未排序区间为空,整个序列有序为止。

4、希尔排序算法

Java希尔排序算法是一种基于插入排序的排序算法,通过将整个数组分成若干个子序列来进行排序,这些子序列是由数组元素的下标间隔一个固定的增量d所形成的。然后,对每一个子序列分别进行插入排序,使得整个序列基本有序。随着算法的进行,逐渐减小增量d的值,直到d为1时,整个数组就变为一个子序列,此时再对整个数组进行一次插入排序,即可完成排序。

5、快速排序算法

Java快速排序算法是一种高效的排序算法,它基于分治法的思想,通过递归地将数组分成较小的子数组进行排序,最终合并得到有序的数组。快速排序的基本思想是选择一个“基准”元素,然后将数组分成两个子数组,其中一个子数组的所有元素都比基准元素小,另一个子数组的所有元素都比基准元素大。接着,递归地对这两个子数组进行快速排序,直到子数组的大小为1或0,即已经有序。最后,合并这些有序的子数组,得到整个有序数组。

6、基数排序算法

基数排序(Radix Sort)是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别进行排序。又称桶排序(Bucket Sort),是一种分配式排序。它将所有待比较数值(通常为正整数)统一为同样的数位长度,数位较短的数前面补零。然后,从最低位开始,依次进行一次排序,直到最高位排序完成,数列就变成一个有序序列。

二、代码实现方式

 package com.test;​import java.util.Arrays;​public class SortDemo {public static void main(String[] args) {int[] arr = { 64, 34, 25, 12, 22, 11, 90 };bubbleSort(arr);System.out.println("排序后的数组: ");for (int i : arr) {System.out.print(i + " ");}}​// 1、选择排序/** 选择排序的基本思想是:在未排序序列中,找到最小(或最大)的元素,存放到已排序序列的末尾。* 随着遍历的进行,每次选出的元素都比它前面的元素大(或小)。* 时间复杂度:O(n^2),其中n是数组的长度。空间复杂度:O(1)。*/public static void selectionSort(int[] arr) {System.out.println("--选择排序--");int n = arr.length;for (int i = 0; i < n - 1; i++) {int minIndex = i;for (int j = i + 1; j < n; j++) {if (arr[j] < arr[minIndex]) {minIndex = j;}}// 将最小元素与当前元素交换int temp = arr[i];arr[i] = arr[minIndex];arr[minIndex] = temp;}}​// 2、冒泡排序/*** 1、比较相邻的元素,如果第一个比第二个大,就交换他们两个* 2、对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。这步做完了后,最后的元素就是最大的数* 3、针对所有的元素重复以上的步骤,除了最后一个* 4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较* 5、重复步骤2到4,直到所有元素都排好序了。* 6、冒泡排序的时间复杂度是O(n^2),其中n是数组的长度。*/public static void bubbleSort(int[] arr) {System.out.println("--冒泡排序--");int n = arr.length;for (int i = 0; i < n - 1; i++) {for (int j = 0; j < n - i - 1; j++) {if (arr[j] > arr[j + 1]) {// 交换元素int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}}​// 3、插入排序/** 将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是末排序序列。* 从头到尾一次扫描末排序序列,将扫描到的每一个元素插入有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素相等,* 则将待插入元素插入到相等元素的后面)*//** 插入排序的时间复杂度为O(n^2),其中n是待排序序列的长度。在最坏情况下,插入排序的时间复杂度为O(n^2)。在最好情况下,插入排序的时间复杂度为O* (n),其中n是待排序序列的长度。在最坏的情况下,插入排序的空间复杂度为O(1)。*/public static void insertionSort(int[] arr) {System.out.println("--插入排序--");int n = arr.length;for (int i = 1; i < n; i++) {int key = arr[i];int j = i - 1;while (j >= 0 && arr[j] > key) {arr[j + 1] = arr[j];j -= 1;}arr[j + 1] = key;}}​// 4、希尔排序/** 希尔排序是一种插入排序的改进版本,它通过分组进行比较和交换,从而减少比较次数。* 希尔排序的基本思想是:首先将数组分成若干个子数组,然后对每个子数组进行插入排序。接着,将子数组的大小减半,重复上述过程,直到整个数组有序。* 希尔排序是一种高效的排序算法,适用于数据量较大的情况。* * 时间复杂度:O(nlogn),其中n是数组的长度。空间复杂度:O(logn)。*/public static void shellSort(int[] arr) {System.out.println("--希尔排序--");int n = arr.length;for (int gap = n / 2; gap > 0; gap /= 2) {for (int i = gap; i < n; i++) {int temp = arr[i];int j;for (j = i - gap; j >= 0 && arr[j] > temp; j -= gap) {arr[j + gap] = arr[j];}arr[j + gap] = temp;}}}​// 5、快速排序/** 从数列中挑出一个元素,称为 “基准”(pivot);* 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,* 该基准就处于数列的中间位置,这个称为分区(partition)操作;* 递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序;*/public static void quickSort(int[] arr, int low, int high) {if (low < high) {int pi = partition(arr, low, high);quickSort(arr, low, pi - 1);quickSort(arr, pi + 1, high);}}​// 分区函数private static int partition(int[] arr, int low, int high) {int pivot = arr[high];int i = (low - 1); // 指向小于pivot的元素的位置for (int j = low; j <= high - 1; j++) {if (arr[j] < pivot) {i++;int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}}int temp = arr[i + 1];arr[i + 1] = arr[high];arr[high] = temp;return (i + 1);}​// 6、基数排序/** 基数排序是一种非比较排序算法,它通过将整数按位(个、十、百等)分组来实现排序。基数排序的时间复杂度在平均情况下为O(n log r),其中n是数组的长度,r是基数的数量。*/public static void radixSort(int[] arr) {int max = Arrays.stream(arr).max().getAsInt();for (int exp = 1; max / exp > 0; exp *= 10) {countSort(arr, exp);}}​private static void countSort(int[] arr, int exp) {int n = arr.length;int[] output = new int[n];int[] count = new int[10];for (int i = 0; i < n; i++) {count[(arr[i] / exp) % 10]++;}for (int i = 1; i < 10; i++) {count[i] += count[i - 1];}for (int i = n - 1; i >= 0; i--) {output[count[(arr[i] / exp) % 10] - 1] = arr[i];count[(arr[i] / exp) % 10]--;}System.arraycopy(output, 0, arr, 0, n);}​}
 ​

相关文章:

Java常见排序算法及代码实现

1、选择排序算法 选择排序&#xff08;Selection Sort&#xff09;是一种简单直观的排序算法&#xff0c;它的工作原理是每次从未排序部分选择最小&#xff08;或最大&#xff09;的元素&#xff0c;将其放到已排序部分的末尾。 2、冒泡排序算法 冒泡排序&#xff08;Bubble…...

130,[1] 攻防世界 very_easy_sql

进入靶场 典型SQL注入页面 先查看源码 访问 试试http://127.0.0.1/ 还尝试了其他都是nonono 回归第一个登录页面 提交的内容不在url处显示&#xff0c;反而第二个url页面会在url处显示 明白第一个页面是通过post方式提交&#xff0c;反正没得到什么信息&#xff0c;去抓…...

Spring Boot从入门到精通:核心知识点+实战指南

目录 一、Spring Boot 是什么&#xff1f;为什么它如此流行&#xff1f; 二、快速创建你的第一个Spring Boot应用 2.1 使用Spring Initializr生成项目 2.2 核心代码示例 三、深度解析Spring Boot核心机制 3.1 自动配置原理揭秘 3.2 自定义Starter实战 四、生产环境必备…...

深入探索现代CSS:从基础到未来趋势

引言&#xff1a;CSS的进化之路 CSS&#xff08;层叠样式表&#xff09;自1996年诞生以来&#xff0c;已从简单的样式描述语言发展为构建现代Web体验的核心技术。截至2023年&#xff0c;超过98%的网站使用CSS3技术&#xff0c;其发展历程见证了Web从静态文档到富交互应用的蜕变…...

python-leetcode 23.反转链表

题目&#xff1a; 给单链表的头节点&#xff0c;反转链表&#xff0c;并返回反转后的链表。 方法一&#xff1a;迭代 在遍历链表时&#xff0c;将当前节点的next指针改为指向前一个节点。由于节点没有引用其前一个节点&#xff0c;因此要先存储前一个节点&#xff0c;在更改引…...

Foundation CSS 可见性

Foundation CSS 可见性 引言 在网页设计中,CSS可见性是一个至关重要的概念。它决定了元素在网页上是否可见,以及如何显示。Foundation CSS 是一个流行的前端框架,它提供了丰富的工具和组件来帮助开发者构建响应式和可访问的网页。本文将深入探讨 Foundation CSS 中的可见性…...

DeepSeek模拟阿里面试——java基本语法

为了全面准备阿里Java高级程序员的面试&#xff0c;以下是针对数据类型和变量、运算符、流程控制的系统性复习和准备策略&#xff1a; 数据类型和变量 基本数据类型 整数类型&#xff1a;byte&#xff08;1字节&#xff09;、short&#xff08;2字节&#xff09;、int&#xf…...

大模型基本原理(二)——ChatGPT的工作原理

如何得到一个ChatGPT&#xff1f; 1、无监督预训练&#xff1a;通过大量的文本数据集进行无监督训练&#xff0c;得到一个基座模型&#xff08;只会续写文本&#xff09; 2、监督微调&#xff1a;通过一些人类撰写的高质量对话数据对基座模型进行监督微调&#xff0c;得到一个…...

TensorRT 8.6.1教程1-TensorRT简介

区分计算节点和数据节点 视频 TensorRT 教程 | 基于 8.6.1 版本 | 第一部分_哔哩哔哩_bilibili cookbook...

Seaweedfs(master volume filer) docker run参数帮助文档

文章目录 进入容器后执行获取weed -h英文中文 weed server -h英文中文 weed volume -h英文中文 关键点测试了一下&#xff0c;这个-volume.minFreeSpace string有点狠&#xff0c;比如设置值为10&#xff08;10%&#xff09;&#xff0c;它直接给系统只留下10%的空间&#xff0…...

深度求索(DeepSeek)的AI革命:NLP、CV与智能应用的技术跃迁

Deepseek官网&#xff1a;DeepSeek 引言&#xff1a;AI技术浪潮中的深度求索 近年来&#xff0c;人工智能技术以指数级速度重塑全球产业格局。在这场技术革命中&#xff0c;深度求索&#xff08;DeepSeek&#xff09;凭借其前沿的算法研究、高效的工程化能力以及对垂直场景的…...

探索RDMA技术:从基础到实践

1. 引言 在当今的高性能计算(HPC)和数据中心领域,数据传输的效率和速度至关重要。RDMA(Remote Direct Memory Access,远程直接内存访问)技术作为一种高效的网络通信机制,能够显著减少数据传输的延迟和CPU负载。本文将从基础到实践,详细介绍RDMA技术及其编程模型,帮助…...

Excel 笔记

实际问题记录 VBA脚本实现特殊的行转列 已知&#xff1a;位于同一Excel工作簿文件中的两个工作表&#xff1a;Sheet1、Sheet2。 问题&#xff1a;现要将Sheet2中的每一行&#xff0c;按Sheet1中的样子进行转置&#xff1a; Sheet2中每一行的黄色单元格&#xff0c;为列头。…...

Flutter编译运行android问题之JVM版本问题

错误1&#xff1a; FAILURE: Build failed with an exception. * What went wrong: Execution failed for task :audioplayers_android:compileDebugKotlin. > Inconsistent JVM-target compatibility detected for tasks compileDebugJavaWithJavac (1.8) and compileDebug…...

自动化遇到的问题记录(遇到问题就更)

总结回归下自己这边遇到的一些问题 “EOF错误”&#xff0c;获取不到csv里面的内容 跑多csv文件里的场景&#xff0c;部分场景的请求值为 1、检查csv文件里不能直接是[]开头的参数&#xff0c;把[]改到ms平台的请求参数里 2、有时可能是某个参数值缺了双引号的其中一边 met…...

解决 Flutter Device Daemon 启动失败问题的实践记录

解决 Flutter Device Daemon 启动失败问题的实践记录 最近在使用 Flutter 开发时踩了一个坑。看似是个小问题&#xff0c;但折腾了好久&#xff0c;最终通过日志分析和查阅资料才找到了解决办法。这里记录一下整个问题的排查过程&#xff0c;希望能帮助到遇到类似问题的小伙伴…...

中国通信企业协会 通信网络安全服务能力评定 证书使用说明

中国通信企业协会颁发的通信网络安全服务能力资格证书&#xff0c;是证明证书持有单位符合通信网络安全服务相应能力准则要求。证书持有单位在使用中国通信企业协会颁发的证书时&#xff0c;应遵守以下规定&#xff1a; 评定证书 证书持有单位必须遵守《中国通信企业协会通信网…...

《我在技术交流群算命》(三):QML的Button为什么有个蓝框去不掉啊(QtQuick.Controls由Qt5升级到Qt6的异常)

有群友抛出类似以下代码和运行效果截图&#xff1a; import QtQuick import QtQuick.ControlsWindow {width: 640height: 480visible: truetitle: qsTr("Hello World")Button{anchors.centerIn: parentwidth: 100height: 40background: Rectangle {color: "red…...

多项式插值(数值计算方法)Matlab实现

多项式插值&#xff08;数值计算方法&#xff09;Matlab实现 一. 原理介绍二. 程序设计1. 构建矩阵2. 求解矩阵方程3. 作出多项式函数4. 绘制插值曲线5. 完整代码 三. 图例 一. 原理介绍 关于插值的定义及基本原理可以参照如下索引 插值原理&#xff08;数值计算方法&#xff…...

【AIGC】语言模型的发展历程:从统计方法到大规模预训练模型的演化

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: AIGC | ChatGPT 文章目录 &#x1f4af;前言&#x1f4af;语言模型的发展历程&#xff1a;从统计方法到大规模预训练模型的演化1 统计语言模型&#xff08;Statistical Language Model, SLM&#xff09;&#xff1a;统…...

[python]如何安装whl包并解决依赖关系(详细)

一、什么是whl文件&#xff1f; whl是一种预编译的二进制包文件&#xff0c;它主要用于安装python库。简单来讲whl就是一种已经编译好的python库文件。我们可以使用whl包来安装python库。 二、我们为什么需要使用whl文件来安装python库&#xff1f; 有的小伙伴可能会疑惑&…...

Windows中使用Docker安装Anythingllm,基于deepseek构建自己的本地知识库问答大模型,可局域网内多用户访问、离线运行

文章目录 Windows中使用Docker安装Anythingllm&#xff0c;基于deepseek构建自己的知识库问答大模型1. 安装 Docker Desktop2. 使用Docker拉取Anythingllm镜像2. 设置 STORAGE_LOCATION 路径3. 创建存储目录和 .env 文件.env 文件的作用关键配置项 4. 运行 Docker 命令docker r…...

用Kibana实现Elasticsearch索引的增删改查:实战指南

在大数据时代&#xff0c;Elasticsearch&#xff08;简称 ES&#xff09;和 Kibana 作为强大的数据搜索与可视化工具&#xff0c;受到了众多开发者的青睐。Kibana 提供了一个直观的界面&#xff0c;可以方便地对 Elasticsearch 中的数据进行操作。本文将详细介绍如何使用 Kiban…...

AI前端开发的国际化发展机遇:ScriptEcho助力全球化布局

在全球化的今天&#xff0c;互联网应用已不再局限于单一市场。高效便捷的前端开发方案成为企业拓展国际市场的关键。得益于人工智能技术的飞速发展&#xff0c;AI代码生成器 正在深刻改变前端开发模式&#xff0c;为国际化应用开发带来前所未有的机遇。然而&#xff0c;国际化开…...

本地基于GGUF部署的DeepSeek实现轻量级调优之一:提示工程(Prompt Engineering)(完整详细教程)

前文&#xff0c;我们在本地windows电脑基于GGUF文件&#xff0c;部署了DeepSeek-1.5B模型&#xff0c;如果想自行对模型进行训练&#xff0c;离线模式下加载本地的DeepSeek模型进行训练时&#xff0c;是不能直接使用GGUF文件进行训练。 请参照我的文章在本地部署好模型之后再继…...

基于 GEE 计算研究区年均地表温度数据

目录 1 代码解析 2 完整代码 3 运行结果 1 代码解析 &#xff08;1&#xff09;定义研究区&#xff1a; // 研究区的范围需要自己提前上传 var dataset table;// 将研究区显示在中心&#xff0c;后面的数字为缩放等级&#xff0c;范围从1 - 24 Map.centerObject(dataset,…...

编程语言的深度剖析:从语法到性能优化

引言 随着软件开发的不断进化&#xff0c;编程语言的选择对项目的成功与否具有关键影响。今天的开发者面临着丰富多样的编程语言选择&#xff1a;每一种语言都有独特的优势、特性和适用场景。然而&#xff0c;语言的设计理念、运行机制和优化技巧背后的技术细节却常常被忽视。本…...

设计模式-结构型-外观模式

在软件开发中&#xff0c;随着功能的不断迭代&#xff0c;系统会变得越来越复杂&#xff0c;模块之间的依赖关系也会越来越深。这种复杂性会导致代码难以理解、维护和扩展。而外观模式&#xff08;Facade Pattern&#xff09;正是为了解决这一问题而生的。 一、外观模式简介 …...

uniapp中对于文件和文件夹的处理,内存的查询

目录 移动文件到指定文件夹 新增本地文件夹 设定本地文件过期时间&#xff0c;清除超时文件&#xff0c;释放内存 操作本地文件之----删除 uniapp获取设备剩余存储空间的方法 读取本地文件夹下的文件 移动文件到指定文件夹 function moveTempFile(tempFilePath, targetFo…...

计算机网络和操作系统常见面试题目(带脑图,做了延伸以防面试官深入提问)

呜哦~~(✪▽✪)曼波~~~~ 今天我们来聊聊计算机网络和操作系统的面试题目吧&#xff01;这些题目是面试中经常遇到的&#xff0c;曼波觉得掌握它们对面试非常有帮助哦&#xff01;(๑✧◡✧๑) --- 1. 计算机网络面试题目 1.1 OSI 七层模型是什么&#xff1f; 回答&#xff…...

C++ Primer 条件语句

欢迎阅读我的 【CPrimer】专栏 专栏简介&#xff1a;本专栏主要面向C初学者&#xff0c;解释C的一些基本概念和基础语言特性&#xff0c;涉及C标准库的用法&#xff0c;面向对象特性&#xff0c;泛型特性高级用法。通过使用标准库中定义的抽象设施&#xff0c;使你更加适应高级…...

JAVA安全—Shiro反序列化DNS利用链CC利用链AES动态调试

前言 讲了FastJson反序列化的原理和利用链&#xff0c;今天讲一下Shiro的反序列化利用&#xff0c;这个也是目前比较热门的。 原生态反序列化 我们先来复习一下原生态的反序列化&#xff0c;之前也是讲过的&#xff0c;打开我们写过的serialization_demo。代码也很简单&…...

16.React学习笔记.React更新机制

一. 发生更新的时机以及顺序## image.png props/state改变render函数重新执行产生新的VDOM树新旧DOM树进行diff计算出差异进行更新更新到真实的DOM 二. React更新流程## React将最好的O(n^3)的tree比较算法优化为O(n)。 同层节点之间相互比较&#xff0c;不跨节点。不同类型的节…...

React使用 useImperativeHandle 自定义暴露给父组件的实例方法(包括依赖)

关键词 React useImperativeHandle 摘要 useImperativeHandle 是 React 提供的一个自定义 Hook&#xff0c;用于在函数组件中显式地暴露给父组件特定实例的方法。本文将介绍 useImperativeHandle 的基本用法、常见应用场景&#xff0c;以及如何处理其依赖项&#xff0c;以帮…...

Vue 过渡动画实现全解析:打造丝滑交互体验

Vue 过渡动画实现全解析&#xff1a;打造丝滑交互体验 在当今竞争激烈的 Web 开发领域&#xff0c;用户体验已成为衡量项目成功与否的关键指标。过渡动画作为提升用户体验的利器&#xff0c;能让应用的交互更加丝滑流畅&#xff0c;给用户带来愉悦的使用感受。在 Vue.js 框架中…...

从 0 开始本地部署 DeepSeek:详细步骤 + 避坑指南 + 构建可视化(安装在D盘)

个人主页&#xff1a;chian-ocean 前言&#xff1a; 随着人工智能技术的迅速发展&#xff0c;大语言模型在各个行业中得到了广泛应用。DeepSeek 作为一个新兴的 AI 公司&#xff0c;凭借其高效的 AI 模型和开源的优势&#xff0c;吸引了越来越多的开发者和企业关注。为了更好地…...

Render上后端部署Springboot + 前端Vue 问题及解决方案汇总

有一个 Vue 前端 和 Spring Boot 后端的动态网页游戏&#xff0c;当前在本地的 5173 端口和运行。你希望生成一个公开链接&#xff0c;让所有点击链接的人都能访问并玩这个游戏。由于游戏原本需要在本地执行 npm install 后才能启动&#xff0c;你现在想知道在部署时是选择 Ren…...

Linux——信号的保存与处理

前言&#xff1a;本文主要介绍信号的保存与处理过程。 一、信号阻塞与信号底层逻辑 在linux下面的进程控制块(PCB),存在一个pending变量用于存放接收到的信号&#xff0c;该变量有32位&#xff0c;变量的位代表信号的类别&#xff0c;变量的值代表是否收到信号。进程会根据该变…...

【deepseek-r1本地部署】

首先需要安装ollama,之前已经安装过了&#xff0c;这里不展示细节 在cmd中输入官网安装命令&#xff1a;ollama run deepseek-r1:32b&#xff0c;开始下载 出现success后&#xff0c;下载完成 接下来就可以使用了&#xff0c;不过是用cmd来运行使用 可以安装UI可视化界面&a…...

Docker Desktop Windows 安装

一、先下载Docker desktop WIndows 下载地址 二、安装 安装超简单 一路 下一步 三、安装之后&#xff0c;桌面会出现一个 小蓝鲸图标&#xff0c;打开它 》更新至最新版本&#xff0c;不然小蓝鲸打开&#xff0c;一会就退出了。 》wsl --update &#xff08;这个有时比较慢…...

pytorch环境已安装库汇总

简略版总计&#xff1a;python pytorch nb_conda&#xff08;Jupyter Notebook的插件&#xff09; 创建环境conda create -n pytorch python3.8 conda install nb_conda命令...

基于Django以及vue的电子商城系统设计与实现

基于Django以及vue的电子商城系统设计与实现 引言 随着电子商务的快速发展&#xff0c;越来越多的企业和个人选择搭建线上商城&#xff0c;以提供更加便捷的购物体验。本文基于Python开发了一套电子商城系统&#xff0c;后端采用Django框架&#xff0c;前端使用Vue.js&#x…...

Spring Boot + ShardingSphere 踩坑记

最近在准备秋招&#xff0c;偷了个轮子项目之后想改个分表&#xff0c;于是有了这篇文章。 省流&#xff1a;请使用shardingsphere-jdbc 5.5.2&#xff0c;并根据官方5.5.2版本文档进行配置&#xff0c;不要使用starter。此外&#xff0c;如果希望使用INTERVAL分片算法&#x…...

【算法学习】DFS与BFS

目录 一&#xff0c;深度优先搜索 1&#xff0c;DFS 2&#xff0c;图的DFS遍历 (1)&#xff0c;递归实现&#xff08;隐士栈&#xff09; (2)&#xff0c;显示栈实现&#xff08;非递归&#xff09; 二&#xff0c;广度优先搜索 1&#xff0c;BFS 2&#xff0c;图的BF…...

从零到一:开发并上线一款极简记账本小程序的完整流程

从零到一&#xff1a;开发并上线一款极简记账本小程序的完整流程 目录 前言需求分析与功能设计 2.1 目标用户分析2.2 核心功能设计2.3 技术栈选择 开发环境搭建 3.1 微信开发者工具安装与配置3.2 项目初始化3.3 版本控制与协作工具 前端开发 4.1 页面结构与布局4.2 组件化开发…...

centos安装Nexus Repository OSS(Maven私服)

1. 下载链接&#xff1a;https://help.sonatype.com/en/download.html 2. 注意页面下载页面中的要求&#xff1a;JDK17&#xff08;启动时提示最低JDK1.8最高JDK17&#xff0c;但是使用JDK1.8无法正常启动&#xff09; 3. mkdir /opt/nexus 将压缩包上传到该目录并解压。 tar …...

Unity使用iTextSharp导出PDF-02基础结构及设置中文字体

基础结构 1.创建一个Document对象 2.使用PdfWriter创建PDF文档 3.打开文档 4.添加内容&#xff0c;调用文档Add方法添加内容时&#xff0c;内容写入到输出流中 5.关闭文档 using UnityEngine; using iTextSharp.text; using System.IO; using iTextSharp.text.pdf; using Sys…...

CSS 属性选择器详解与实战示例

CSS 属性选择器是 CSS 中非常强大且灵活的一类选择器&#xff0c;它能够根据 HTML 元素的属性和值来进行精准选中。在实际开发过程中&#xff0c;属性选择器不仅可以提高代码的可维护性&#xff0c;而且能够大大优化页面的样式控制。本文将结合菜鸟教程的示例&#xff0c;从基础…...

【漫话机器学习系列】088.常见的输出层激活函数(Common Output Layer Activation Functions)

在神经网络中&#xff0c;输出层&#xff08;Output Layer&#xff09; 的激活函数&#xff08;Activation Function&#xff09;直接决定了模型的输出形式&#xff0c;并影响损失函数的选择及训练效果。不同的任务类型&#xff08;如分类或回归&#xff09;需要使用不同的激活…...

STM32 HAL库 UART通讯(C语言)

1、使能UART时钟和GPIO时钟(以USART1为例): __HAL_RCC_USART1_CLK_ENABLE(); // 使能USART1时钟 __HAL_RCC_GPIOA_CLK_ENABLE(); // 使能GPIOA时钟(假设使用PA9/TX, PA10/RX) 2、GPIO配置: GPIO_InitTypeDef GPIO_InitStruct = {0}; GPIO_InitStruct.P…...