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

数据结构与算法:直接插入、希尔、冒泡排序核心原理总结

文章目录1.直接插入排序2.希尔排序3.冒泡排序直接插入排序算法基本思想直接插⼊排序是⼀种简单的插⼊排序法其基本思想是把待排序的记录按其关键码值的⼤⼩逐个插 ⼊到⼀个已经排好序的有序序列中直到所有的记录插⼊完为⽌得到⼀个新的有序序列 。思路讲解定义endend1tmp三个变量end指向a数列的首数字tmp指向end1数列的值如果end的值大于end1的值则end1的值则改为end的值并且end需要减减此后因为tmp保存了end1的值end又减减后end1指向的值等于tmp指向的值完成前两个数字插入排序。时间复杂度O(n^2)空间复杂度O(1)代码实现void InsertSort(int* arr, int n) { for (int i 0; i n-1; i) { int end i; int tmp arr[end 1]; while (end 0) { if (arr[end] tmp) { arr[end 1] arr[end]; end--; } else { break; } } arr[end 1] tmp; } }希尔排序基本思路希尔排序法⼜称缩⼩增量法。希尔排序法的基本思想是先选定⼀个整数通常是gap n/31把 待排序⽂件所有记录分成各组所有的距离相等的记录分在同⼀组内并对每⼀组内的记录进⾏排 序然后gapgap/31得到下⼀个整数再将数组分成各组进⾏插⼊排序当gap1时就相当于 直接插⼊排序。 它是在直接插⼊排序算法的基础上进⾏改进⽽来的综合来说它的效率肯定是要⾼于直接插⼊排序算 法的。思路讲解希尔排序会先定义gap循环内gapgap/31按例图所示gap5时头结点与相隔5距离的结点相互比较如果头结点更大则会发生交换数列的加加以此循环gap1时相当于插入排序但是由于gap的排序会使得希尔排序比插入排序效率更高。希尔排序时间复杂度求值十分复杂时间复杂度O(N^1.3)空间复杂度O(1)代码实现void ShellSort(int* arr, int n) { int gap n; while (gap 1) { gap gap / 3 1; for (int i 0; i n - gap; i) { int end i; int tmp arr[end gap]; while (end 0) { if (arr[end] tmp) { arr[end gap] arr[end]; end - gap; } else { break; } } arr[end gap] tmp; } } }冒泡排序基本思路冒泡排序Bubble Sort是一种基于交换的稳定排序算法其核心思想是通过相邻元素的比较与交换将待排序序列中较大的元素逐步 “冒泡” 到序列的末尾重复该过程直至整个序列有序。思路讲解定义两个循环外层循环从数组数量最大开始递减end4内层循环从i1开始等于0会让代码越界为什么要定义两个循环一个循环一轮不能把数组变成有序因此需要多个循环遍历使其变得是有序数列。最后代码用到swap函数需要注意他们两个值交换的是地址不是值的交换如果值改变形参的改变不影响实参的改变。时间复杂度O(n^2)空间复杂度O(1)代码实现void sawp(int* a, int* b) { int tmp *a; *a *b; *b tmp; } void BubbleSort(int* arr, int n) { for (size_t end n; end 0; end--) { int exchange 0; for (size_t i 1; i end; i) { if (arr[i - 1] arr[i]) { sawp(arr[i - 1], arr[i]); exchange 1; } } if (exchange 0) { break; } } }

相关文章:

数据结构与算法:直接插入、希尔、冒泡排序核心原理总结

文章目录1.直接插入排序2.希尔排序3.冒泡排序直接插入排序算法基本思想:直接插⼊排序是⼀种简单的插⼊排序法,其基本思想是:把待排序的记录按其关键码值的⼤⼩逐个插 ⼊到⼀个已经排好序的有序序列中,直到所有的记录插⼊完为⽌&am…...

540万元奖金!2026年数学界“诺贝尔奖”揭晓

来源:科学网编辑:方圆排版:郭刚文:韩扬眉 赵婉婷3月19日,被誉为数学界“诺贝尔奖”的阿贝尔奖揭晓。挪威科学与文学院决定将2026年度阿贝尔奖授予德国马克斯普朗克数学研究所(以下简称马普数学所&#xff0…...

域名解析与配置

方案一:用泛解析(Wildcard DNS)最常见、最简单的方式。步骤:在阿里云 DNS 配置里新增一条解析:主机记录:*记录类型:A 记录(或者 CNAME,指向统一主站)记录值&a…...

思阳GEO思考:3步破解搜索痛点,抢占AI优先推荐

2026年,对话式搜索已全面渗透用户的决策路径。面对“零点击”常态化和传统流量的骤降,营销从业者前置需改进数据考核标准。当大模型成为信息守门人,如何提升品牌在生成式摘要中的品牌认知率,已成为企业缓解流量焦虑、实现精准触达…...

基于企微API与CRM对接,构建试听后的自动化跟进与转化SOP

一、问题背景:试听结束后的“黄金48小时”为何总是浪费? 从技术视角分析,试听课结束后到用户购买决策之间,存在一个典型的转化漏斗,但大多数机构的漏斗漏掉了大部分用户: 跟进滞后:试听课结束后…...

百考通:AI赋能实践报告,智能生成优质内容,让实习总结高效又专业

对于每一位在校学生和职场新人而言,实践报告都是记录成长、沉淀经验的关键载体,却也常常成为令人头疼的难题:要么不知如何梳理工作脉络,要么难以精准提炼收获与反思,要么在格式规范和字数要求上反复纠结。百考通&#…...

Face Analysis WebUI模型安全防护策略

Face Analysis WebUI模型安全防护策略 1. 引言 人脸分析技术正在改变我们与数字世界的交互方式,从智能门禁到个性化推荐,Face Analysis WebUI模型让复杂的人脸检测和识别变得简单易用。但当你把这样一个强大的工具部署到实际环境中时,安全问…...

【无人售货柜・RK+YOLO】篇 4:效果拉满!针对无人售货柜场景的 YOLO 模型优化技巧,解决 90% 的识别问题

目录 一、先搞懂:你的模型效果差,到底是哪里出了问题? 二、痛点一:相似商品误识别,90% 的商用项目都栽在这 1. 最高优先级:难例挖掘,让模型专门学容易认错的商品 2. 第二优先级:…...

【无人售货柜・RK+YOLO】篇 3:手把手带飞!YOLO 商品识别环境搭建 + 训练全流程,一行行代码带敲

目录 一、先给新手打个底:训练需要什么硬件? 最低硬件要求 二、第一步:环境搭建,新手避坑版,照着做绝对不报错 1. 安装 Python:版本必须选对,别装最新版 2. 安装 PyTorch:YOLO …...

扩散模型在轨迹预测中的5种实战应用:从Leapfrog到DiffTraj全解析

扩散模型在轨迹预测中的5种实战应用:从Leapfrog到DiffTraj全解析 在自动驾驶和机器人导航领域,轨迹预测一直是核心挑战之一。传统方法往往受限于确定性输出的局限,而扩散模型通过其独特的概率生成特性,为多模态轨迹预测开辟了新路…...

【无人售货柜・RK+YOLO】篇 2:90% 的新手都栽在这!无人售货柜商品识别数据集制作保姆级教程

目录 一、先搞懂核心:售货柜场景的数据集,到底要满足什么要求? 二、第一步:数据集采集,新手最容易踩坑的环节 1. 采集工具:必须和部署场景一致 2. 采集数量:到底要拍多少张图才够&#xff1…...

arxiv | 2025 | DuGI-MAE: Improving Infrared Mask Autoencoders via Dual-Domain Guidance

文章目录创新点贡献摘要及引言预备知识方法基于熵的掩码模块双域导向⾃适应频域调制(AFDM)频率引导注意力注入用于下游任务的DuGI-MAE实验红外目标检测红外语义分割红外小目标检测消融研究结论未来方向arxiv | 2025 | DuGI-MAE论文:https://a…...

YOLOv8部署提示‘找不到模型’?独立路径配置教程

YOLOv8部署提示‘找不到模型’?独立路径配置教程 1. 问题背景与解决方案 最近很多开发者在部署YOLOv8目标检测模型时遇到了一个常见问题:系统提示"找不到模型"。这个错误通常发生在模型路径配置不正确的情况下,特别是当使用独立部…...

开箱即用!LongCat-Image-Editn镜像快速部署与网页端测试完整教程

开箱即用!LongCat-Image-Editn镜像快速部署与网页端测试完整教程 1. 前言:一句话就能改图的AI神器 你有没有遇到过这样的烦恼?看到一张不错的图片,但总觉得哪里需要改一改——想把照片里的猫换成狗,想把背景换成海滩…...

告别AI自嗨!我的“落地”觉醒:做能帮人赚钱的事,才是真本事

上个月,一个做直播电商的朋友喝多了,拍着桌子冲我吼:“你们搞AI的天天说赋能赋能,我团队现在最烦的就是‘AI’这俩字!” 我愣住了。作为每天追大模型更新、研究各种技术参数的AI产品经理,我一直以为自己在做…...

AudioSeal精彩案例:国际赛事AI解说语音嵌入多语言版权信息水印

AudioSeal精彩案例:国际赛事AI解说语音嵌入多语言版权信息水印 1. 项目背景与价值 在当今数字内容爆炸式增长的时代,音频内容的版权保护变得尤为重要。国际体育赛事、新闻播报、音乐创作等领域都面临着AI生成音频的版权归属问题。AudioSeal作为Meta开源…...

用于光镊的Ince高斯光束

光镊是一种科学仪器,它利用高度聚焦的光束在亚微观水平上操纵物体,可以用来抓取单个细胞或分子,因此在生物学、医学和纳米化学中有许多应用。为了确保这些设置的正常功能,所用光束在整个聚焦过程中需要具有稳定的结构。虽然多种不…...

计算机常用接口及用途

计算机常用接口及用途1.VGA:Video Graphics array 视频图形阵列这是一个比较老式的显示连接器,也称为“模拟视频连接器”。这曾经在台式机和笔记本电脑上随处可见,但是 VGA 连接器已经无法适应先进的视频技术了。它在慢慢地被 DVI 和 HDMI 接…...

【大模型实践篇】Vanna:基于RAG的SQL生成框架从入门到精通的实战指南

1. Vanna框架初探:当自然语言遇见SQL 第一次听说Vanna这个工具时,我正在为一个零售客户分析销售数据。市场部的同事不断跑来问我:"能不能帮我查下上个月销量最好的商品?""哪些客户的复购率最高?"作…...

AI论文投稿避坑指南:这10本中科院4区SCI期刊审稿快、要求低

AI论文投稿实战指南:10本中科院4区SCI期刊深度测评与策略分析 第一次投稿就像在迷宫里摸索——你不知道哪条路能最快到达终点,更不知道哪条路上藏着审稿人的"地雷"。作为经历过7次投稿失败最终在3个月内成功发表两篇论文的"过来人"&…...

建筑设计师用飞扬就会 BIM 设计了

告别复杂建模、告别多软件切换、告别图模不一,飞扬集成设计系统让每一位习惯 CAD 的建筑设计师,零基础也能快速上手 BIM 正向设计,用熟悉的操作逻辑,做出专业级 BIM 成果。零门槛转型:CAD 老设计师也能直接上手不用重新…...

4步精通TradingView数据提取:构建专业金融分析数据集

4步精通TradingView数据提取:构建专业金融分析数据集 【免费下载链接】TradingView-data-scraper Extract price and indicator data from TradingView charts to create ML datasets 项目地址: https://gitcode.com/gh_mirrors/tr/TradingView-data-scraper …...

腾讯 QClaw 全量公测!打通五大 IM,还把 AI 做成了 “像素打工人”

前言:终于不用抢邀请码,腾讯 QClaw 把 AI 办公的门槛拉到最低今天腾讯 QClaw 正式开启全量公测,不用邀请码,官网下载 20 秒就能装完用,还一口气更新了打通五大 IM、像素工作室、可视化定时任务等功能,直接把…...

Flux.1-Dev深海幻境与数据库联动:基于MySQL的生成作品管理与检索系统

Flux.1-Dev深海幻境与数据库联动:基于MySQL的生成作品管理与检索系统 你有没有遇到过这样的烦恼?用Flux.1-Dev深海幻境模型一口气生成了几百张精美的图片,有风景、有人物、有各种奇幻场景,但几天后想找其中一张特定风格的图&…...

VibeVoice Pro行业方案:远程医疗问诊中医生语音转写+患者语音合成

VibeVoice Pro行业方案:远程医疗问诊中医生语音转写患者语音合成 1. 远程医疗的语音交互挑战 远程医疗正在改变传统的就医方式,但语音交互质量直接影响到诊疗效果。想象一下这样的场景:医生通过视频问诊,需要同时记录病历、查看…...

基础语法学习

Java基础语法概述Java是一种面向对象的编程语言,语法简洁且结构清晰。以下从变量、数据类型、运算符、控制结构、方法、数组等方面介绍Java基础语法。变量与数据类型Java是强类型语言,变量需先声明后使用。基本数据类型包括:整型:…...

SUNFLOWER MATCH LAB在ComfyUI中的工作流搭建与可视化推理

SUNFLOWER MATCH LAB在ComfyUI中的工作流搭建与可视化推理 如果你对植物识别或者创意图像处理感兴趣,可能听说过一些复杂的AI模型,但一想到要写代码、配环境就头疼。今天要聊的这个方法,能让你彻底告别这些烦恼。 SUNFLOWER MATCH LAB是一个…...

客服工单类型分不清?IPA自动分咨询/投诉/建议,重点问题早解决

客服工单分类方法基于内容关键词识别 通过自然语言处理(NLP)技术提取工单文本中的关键词(如“咨询”“投诉”“建议”),结合上下文语义判断类型。例如:投诉类工单常含“不满意”“赔偿”“投诉”等词汇&…...

考虑灵活性供需不确定性的储能优化配置附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室🍊个人信条:格物致知,完整Matlab代码及仿真咨询…...

OpenClaw+Qwen3-32B内容处理方案:自动生成公众号草稿并发布

OpenClawQwen3-32B内容处理方案:自动生成公众号草稿并发布 1. 为什么需要自动化内容发布 作为一个技术博主,我每周都要在公众号发布2-3篇原创文章。最让我头疼的不是写作本身,而是那些机械化的发布流程:调整Markdown格式、上传图…...