基础排序算法(三傻排序)
1. 选择排序
- 原理:每次从未排序部分选出最小(或最大)元素,放到已排序部分的末尾。
- 时间复杂度:O(n²),效率低但实现简单,适合小规模数据。
//选择排序public static void selectSort(int[] arr){if(arr == null || arr.length <2){return;}else{for (int indexMin, i = 0; i < arr.length - 1 ; i++) {indexMin = i; //indexMin从i位置开始;//找到i位置以后所有元素的最小值for (int j = i + 1; j < arr.length; j++) {if(arr[indexMin] > arr[j]){indexMin = j;}}//交换indexMin和最小值swap(arr, indexMin,i);}}}
2. 冒泡排序
- 原理:通过相邻元素两两比较和交换,使最大(或最小)元素逐渐“浮”到数组顶端。
- 时间复杂度:O(n²),稳定但效率差,常用于教学场景。
//冒泡排序// 0 ~ n-1// 0 ~ n-2// 0 ~ n-3// ……// 0 ~ end, end--// 0 ~ 0, end>0public static void bubbkeSort(int[] arr){if(arr == null || arr.length <2){return;}else {for (int end = arr.length-1; end > 0 ; end--) {//0 ~ end//0?1//1?2//2?3//3?4//……//end-1 ? endfor (int i = 0; i < end; i++) {if(arr[i] > arr[i+1]){swap(arr,i,i+1);}}}}}
3. 插入排序
- 原理:将未排序元素逐个插入到已排序部分的正确位置,类似整理扑克牌。
- 时间复杂度:O(n²),在接近有序的数据中表现较好,适合小规模或部分有序数据。
//插入排序//范围有序//0~0//0~1//0~2//0~3//……//0~n-1// 从1~npublic static void insertSort(int[] arr){if(arr == null || arr.length <2){return;}else {for (int i = 1; i < arr.length; i++) {//0~i-1范围有序,新来的数字是[i]位置的数字。向左看for (int j = i-1;j >= 0 && arr[j] > arr[j+1] ;j--) {swap(arr, j, j+1);//当前插入的数的位置:j+1;//当前数的前一个数:j}}}}
}
相关文章:
基础排序算法(三傻排序)
1. 选择排序 原理:每次从未排序部分选出最小(或最大)元素,放到已排序部分的末尾。时间复杂度:O(n),效率低但实现简单,适合小规模数据。 //选择排序public static void selectSort(int[] arr){i…...
五分钟了解智能体
在2025年人工智能技术全面渗透社会的背景下,“智能体”(Agent)已成为推动第四次工业革命的核心概念之一。从自动驾驶汽车到医疗诊断系统,从智能家居中枢到金融量化交易平台,智能体正在重构人类与技术交互的方式。本文将…...
【机器学习】笔记| 通俗易懂讲解:生成模型和判别模型|01
博主简介:努力学习的22级计算机科学与技术本科生一枚🌸博主主页: Yaoyao2024往期回顾:【科研小白系列】这些基础linux命令,你都掌握了嘛?每日一言🌼: “脑袋想不明白的,就用脚想”—…...
Jieba分词的原理及应用(三)
前言 “结巴”中文分词:做最好的 Python 中文分词组件 上一篇文章讲了使用TF-IDF分类器范式进行企业级文本分类的案例。其中提到了中文场景不比英文场景,在喂给模型之前需要进行分词操作。 分词的手段有很多,其中最常用的手段还是Jieba库进行…...
神经网络背后的数学原理
神经网络背后的数学原理 数学建模神经网络数学原理 数学建模 标题民科味道满满。其实这篇小短文就是自我娱乐。 物理世界是物种多样,千姿百态。可以从不同的看待眼中的世界,包括音乐、绘画、舞蹈、雕塑等各种艺术形式。但这些主观的呈现虽然在各人眼中…...
常用图像滤波及色彩调节操作(Opencv)
1. 常用滤波/模糊操作 import cv2 import numpy as np import matplotlib.pyplot as plotimg cv2.imread("tmp.jpg") img cv2.cvtColor(img, cv2.COLOR_BGR2RGB) img_g cv2.GaussianBlur(img, (7,7), 0) img_mb cv2.medianBlur(img, ksize7) #中指滤波 img_bm …...
FFMPEG和opencv的编译
首先 sudo apt-get update -qq && sudo apt-get -y install autoconf automake build-essential cmake git-core libass-dev libfreetype6-dev libgnutls28-dev libmp3lame-dev libsdl2-dev libtool libva-dev libvdpau-dev libvorbis-de…...
用户登录不上linux服务器
一般出现这种问题,重新用root用户修改lsy用户的密码即可登录,但是当修改了还是登录不了的时候,去修改一个文件用root才能修改, 然后在最后添加上改用户的名字,例如 原本是只有user的,现在我加上了lsy了&a…...
【项目管理】第11章 项目成本管理-- 知识点整理
相关文档,希望互相学习,共同进步 风123456789~-CSDN博客 (一)知识总览 项目管理知识域 知识点: (项目管理概论、立项管理、十大知识域、配置与变更管理、绩效域) 对应:第6章-第19章 (二)知识笔记 第11章 项目成本管理 1.管理基础…...
Python中的strip()
文章目录 基本语法:示例:1. 默认移除空白字符:2. 移除指定字符:3. 不修改原字符串: 相关方法:示例: 注意事项: 在 Python 中, strip() 是一个字符串方法,用于…...
设计模式 Day 9:命令模式(Command Pattern)完整讲解与实战应用
🔄 回顾 Day 8:策略模式 在 Day 8 中我们讲解了策略模式: 用于封装多个可切换的算法逻辑,让调用者在运行时选择合适的策略。它强调的是“行为选择”,是针对“算法或行为差异”而设计。通过 PaymentStrategy、路径规划…...
【正点原子】STM32MP257 同构多核架构下的 ADC 电压采集与处理应用开发实战
在嵌入式系统中,ADC模拟电压的读取是常见的需求。如何高效、并发、且可控地完成数据采集与处理?本篇文章通过双线程分别绑定在 Linux 系统的不同 CPU 核心上,采集 /sys/bus/iio 接口的 ADC 原始值与缩放系数 scale,并在另一个核上…...
区块链从专家到小白
文章目录 含义应用场景典型特征 含义 以非对称加密算法为基础。 每个**区块(Block)**包含: 交易数据(如转账记录、合约内容)。 时间戳(记录生成时间)。 哈希值(当前区…...
记录centos8安装宝塔过程(两个脚本)
1、切换系统源(方便使用宝塔安装脚本下载) bash <(curl -sSL https://linuxmirrors.cn/main.sh) 2、宝塔安装脚本在宝塔的官网 宝塔面板下载,免费全能的服务器运维软件 根据自己的系统选择相应的脚本 urlhttps://download.bt.cn/insta…...
DAY 42 leetcode 151--哈希表.反转字符串中的单词
题号151 给你一个字符串 s ,请你反转字符串中 单词 的顺序。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。 返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。 我的解法 暴力解法,先将String转为字…...
[VTK] 四元素实现旋转平移
VTK 实现旋转,有四元数的方案,也有 vtkTransform 的方案;主要示例代码如下: //构造旋转四元数vtkQuaterniond rotation;rotation.SetRotationAngleAndAxis(vtkMath::RadiansFromDegrees(90.0),0.0, 1.0, 0.0);//构造旋转点四元数v…...
AI大模型:(二)2.2 分词器Tokenizer
目录 1.分词技术的发展 2.分词器原理 2.1.基于词分词 2.2.基于字符分词 2.3.基于子词分词 3.手搓Byte-Pair Encoding (BPE)分词及训练 3.1.Byte-Pair Encoding (BPE)分词原理 3.2.手搓Byte-Pair Encoding (BPE)分词器 4.如何选择已有的分词器 1. 常见子词分词器及特点…...
codeforces A. Simple Palindrome
目录 题面 代码 题面 A. 简单回文串 每个测试用例时间限制:1 秒 每个测试用例内存限制:256 兆字节 纳雷克要在幼儿园陪一些两岁的孩子度过两个小时。他想教孩子们竞技编程,他们的第一堂课是关于回文串的。 纳雷克发现孩子们只认识英文字母…...
Linux 进程基础(一):冯诺依曼结构
文章目录 一、冯诺依曼体系结构是什么?🧠二、冯诺依曼体系为何成为计算机组成的最终选择?(一)三大核心优势奠定主流地位(二)对比其他架构的不可替代性 三、存储分级:速度与容量的平衡…...
向量存储(VectorStore)详解
一、向量存储的核心概念 向量存储(VectorStore)是一种用于存储和检索高维向量数据的数据库或存储解决方案,特别适用于处理经过嵌入模型转化后的数据。与传统关系数据库不同,VectorStore 执行的是相似性搜索,而非精确匹…...
HCIP(网络类型)
网络类型概述 网络类型主要基于数据链路层使用的协议不同,导致数据包封装方式不同,工作方式也有所区别。根据这些特点,网络可以被分类为以下几种类型: MA网络(多点接入网络):允许同时接入多台…...
MTCNN 人脸识别
前言 此处介绍强大的 MTCNN 模块,给出demo,展示MTCNN 的 OOP, 以及ROS利用 C 节点,命令行调用脚本执行实际工作的思路。 MTCNN Script import argparse import cv2 from mtcnn import MTCNN import osclass MTCNNProcessor:def…...
一文解析DeepSeek R1模型
1. DeepSeek R1-Zero 在训练DeepSeek R1之前,深度求索团队尝试做了一个DeepSeek R1-Zero的模型,只进行强化学习而不需要监督微调,以此来强化模型自我推理的能力。 通过下图回顾下ChatGPT的做法:首先SFT,然后训练奖励…...
SpringMVC基础三(json)
乱码处理 编写一个表单: 编写EncodingController控制类 测试: 此乱码是在从前端传送到test方法时就已经乱了。 采用过滤器解决乱码 在web.xml中配置SpringMVC的乱码过滤器 <filter><filter-name>encoding</filter-name><filter…...
spring boot大文件与多文件下载
一、简单大文件下载: /*** 下载大文件* param path 路径* param fileName 文件名* return* throws IOException*/ public static ResponseEntity<InputStreamResource> downloadFile(String path, String fileName) throws IOException {Path filePath Path…...
事务隔离级别和MVCC
事务隔离级别 mysql是一个客户端/服务器架构的软件,对于同一个服务器来说,可以有多个客户端与之连接。每个客户端与服务器连接后就形成了一个会话。每个客户端都可以在自己的会话中向服务器发出请求语句,一个请求语句可能是某个事务的一部分…...
Ubuntu 系统深度清理:彻底卸载 Redis 服务及残留配置
Ubuntu 系统深度清理:彻底卸载 Redis 服务及残留配置 在Ubuntu系统中,Redis是一种广泛使用的内存数据存储系统,用于缓存和消息传递等场景。然而,有时候我们需要彻底卸载Redis,以清理系统资源或为其他应用腾出空间。本…...
关于群晖安装tailscale后无法直链的问题
问题是我局域网的ipv6无法正确获取到ip, 通过命令可以看到ipv6没有ip tailscale netcheck C:\Users\Administrator>tailscale netcheck 2025/04/12 23:43:34 attempting to fetch a DERPMap from https://controlplane.tailscale.comReport:* Time: 2025-04-12T15:43:38.27…...
第十二章:FreeRTOS多任务创建与删除
FreeRTOS多任务创建与删除教程 概述 本教程介绍FreeRTOS多任务的创建与删除方法,主要涉及两个核心函数: 任务创建:xTaskCreate()任务删除:vTaskDelete() 实践步骤 1. 准备工程文件 复制005工程并重命名为006 2. 创建多个任务…...
JavaScript数组方法:`some()`的全面解析与应用
文章目录 JavaScript数组方法:some()的全面解析与应用一、some()方法的基本概念语法参数说明返回值 二、some()方法的核心特点三、基础用法示例示例1:检查数组中是否有大于10的元素示例2:检查字符串数组中是否包含特定子串 四、实际应用场景1…...
IntelliJ IDEA历史版本下载安装链接
IntelliJ IDEA | Other Versions 拿走,不谢O(∩_∩)O...
Rag实现流程
Rag实现流程 目录 Rag实现流程1. 加载问答链代码解释`chain_type="stuff"` 的含义其他 `chain_type` 参数选项及特点1. `map_reduce`2. `refine`3. `map_rerank`示例代码展示不同 `chain_type` 的使用其他参数类型2. 提出问题3. 检索相关文档代码解释其他参数类型4. …...
设计模式 --- 命令模式
命令模式是一种行为设计模式,它将请求封装成一个对象,从而允许你使用不同的请求、队列或日志来参数化其他对象,同时支持请求的撤销与恢复。 优点: 1.解耦调用者与接收者:输入处理无需直接调用角色方法 2.支持撤销…...
C# TCP与ip通信
一、获取本机的ip地址 // 获取本地主机名 string hostName Dns.GetHostName(); string ip "127.0.0.1"; //Console.WriteLine("本地主机名: " hostName);// 获取本地IP地址 IPAddress[] addresses Dns.GetHostAddresses(hostName); Console.WriteLine…...
如何使用 Grafana 连接 Easyearch
Grafana 介绍 Grafana 是一款开源的跨平台数据可视化与监控分析工具,专为时序数据(如服务器性能指标、应用程序日志、业务数据等)设计。它通过直观的仪表盘(Dashboards)帮助用户实时监控系统状态、分析趋势࿰…...
ubuntu20.04 openvino的yolov8推理(nncf量化)
1.环境配置: pip install openvino-dev(2023.0.1) pip install nncf(2.5.0) pip install ultralytics 2.模型转换及nncf量化: 1.pytorch->onnx: # Pytorch模型转换为Onnx模型 python from ultralytics import YOLO model YOLO(yolov8s.pt) # yo…...
《Python星球日记》第26天:Matplotlib 可视化
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 订阅专栏:《Python星球日记》 目录 一、Matplotlib 简介1. 什么是 Matplo…...
2025蓝桥杯python A组题解
真捐款去了,好长时间没练了,感觉脑子和手都不转悠了。 B F BF BF 赛时都写假了, G G G 也只写了爆搜。 题解其实队友都写好了,我就粘一下自己的代码,稍微提点个人的理解水一篇题解 队友题解 B 思路: 我…...
OpenHarmony - 小型系统内核(LiteOS-A)(一)
OpenHarmony - 小型系统内核(LiteOS-A)(一) 一、小型系统内核概述 简介 OpenHarmony 轻量级内核是基于IoT领域轻量级物联网操作系统Huawei LiteOS内核演进发展的新一代内核,包含LiteOS-M和LiteOS-A两类内核。LiteOS-…...
Neo4j GDS-13-neo4j GDS 库中节点插入算法实现
neo4j GDS 系列 Neo4j APOC-01-图数据库 apoc 插件介绍 Neo4j GDS-01-graph-data-science 图数据科学插件库概览 Neo4j GDS-02-graph-data-science 插件库安装实战笔记 Neo4j GDS-03-graph-data-science 简单聊一聊图数据科学插件库 Neo4j GDS-04-图的中心性分析介绍 Neo…...
js中this的指向问题
前言: 在js中,this出现的位置多种多样,你会不会迷糊呢?this到底指代的是哪个对象?这篇文章带你搞懂不同场景下this的指向问题。 this出现场景: 从作用域的角度来讲,this出现的位置无非就是两…...
【3dSwap】3D-Aware Face Swapping
文章目录 3D-Aware Face Swapping背景points贡献方法从2D图像推断3D先验通过潜在代码操纵进行人脸交换联合枢轴调整目标函数实验与二维人脸交换方法比较进一步分析3D感知人脸交换消融实验局限性3D-Aware Face Swapping 会议/期刊:CVPR 2023 作者: code:https://lyx0208.gi…...
基于STM32的智能门禁系统
2.1系统方案设计 本课题为基于STM32的智能门禁系统的设计,其系统架构如图2.1所示,整个系统由STM32F103单片机和MaixBit开发板两部分构成,其中MaixBit是基于K210芯片的开发板,在此主要负责人脸的录入,识别,…...
用链表、信号,实现简易MP3项目
链表实现MP3 #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #include <time.h> #include <dirent.h> #include <sys/stat.h> #include <sys/types.h> #include <glob.h> #inc…...
YOLO检测目标后实现距离测量
当我们使用YOLO检测器得到检测结果后,我们如何计算检测的物体距离相机的位置呢? 目前,有三种较为主流的距离计算方法,分别是单目测距、双目测距以及基于深度估计的测距方法。 单目测距 工作原理:单目测距使用一个摄像…...
js 效果展示 拿去练手
自学完整功能,拿去练手。 鼠标移动放大 通过网盘分享的文件:图片放大 链接: https://pan.baidu.com/s/1w8SjtKi4kUNDnZtRDfYMeQ?pwd95p6 提取码: 95p6 通过网盘分享的文件:图片动画效果 链接: https://pan.baidu.com/s/1Pjphx-Cc4HQQNNujr…...
【算法】 欧拉函数与欧拉降幂 python
欧拉函数 欧拉函数 ϕ ( n ) \phi(n) ϕ(n) 表示小于等于 n 的正整数中与 n 互质的数的个数。即: ϕ ( n ) ∣ { k ∈ Z ∣ 1 ≤ k ≤ n , gcd ( k , n ) 1 } ∣ \phi(n) \left| \{ k \in \mathbb{Z}^ \mid 1 \leq k \leq n, \gcd(k, n) 1 \} \right| ϕ(n)…...
Qt触摸屏隐藏鼠标指针
Qt触摸屏隐藏鼠标指针 Chapter1 Qt触摸屏隐藏鼠标指针 Chapter1 Qt触摸屏隐藏鼠标指针 使用Qt开发的屏幕软件HMI不需要显示鼠标,qt设置,可以在只启动HMI的时候隐藏光标,退出时再显示。 1.如果只希望在某个 widget 中不显示鼠标指针…...
QT聊天项目DAY01
1.新建初始项目 2.修改UI格式 运行效果 3.创建登录界面 设计登录界面UI 设计布局 调整布局间距 往水平布局中拖入标签和文本输入框 更换控件名称并固定高度 添加窗口部件 往现有的资源文件中导入图片 添加水平布局 4.设置登陆界面为主窗口的核心组件 #pragma once#include &l…...
Stable Diffusion +双Contronet:从 ControlNet 边缘图到双条件融合:实现服装图像生成的技术演进——项目学习记录
前言 学习记录contronet优化:最近,我基于 diffusers 库的 ControlNet,探索了如何通过 Canny 边缘图控制服装图像生成,并逐步升级到融合颜色图的双条件模型。有不断的问题、解决和进步,从最初的边缘图生成到最终实现 2…...