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

数据结构排序之冒泡、快速、插入、选择、堆、归并等排序及时间,空间复杂度等(超详解,绝对能满足你的需求,并能学到很多有用知识)

在本文章开始之前给大家介绍个网站,可以通过下面动画网址来理解 ,(国外的网站帮助学习数据结构很多知识,可以翻译下来,在搜索框搜索相应的排序算法进行动画演示,非常好用。)​​​https://www.cs.usfca.edu/~galles/visualization/icon-default.png?t=N7T8https://www.cs.usfca.edu/~galles/visualization/ 动画使用方法是,先点play,然后及时点击pause,自己通过Step Forward来查看。

作者QQ:2529702031 备注CSDN 可以问不会的问题,解答疑惑

目录

冒泡排序

快速排序

插入排序

选择排序

堆排序

归并排序

所有排序算法时间与空间复杂度汇总:

冒泡排序

 
  冒泡排序的基本思想是:从后往前(或从前往后)两两比较相邻元素的值,(若A[j-1]>A[j]),则交换它们,直到序列比较完。我们称它为第一趟冒泡,结果是将最小的元素交换到待排序列的第一个位置。关键字最小的元素如气泡一般逐渐往上“漂浮”直至“水面”。下一趟冒泡时, 前一趟确定的最小元素不再参与比较,每趟冒泡的结果是把序列中的最小元素放到了序列的最终位置……这样最多做n - 1趟冒泡就能把所有元素排好序。https://www.cs.usfca.edu/~galles/visualization/ComparisonSort.html给大家已经找好了,直接点击就可看排序算法动画演示。

(用的是王道的资料,王道还是比较权威的) 

代码如下: 

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
typedef int ElemType;
typedef  struct{ElemType *elem;//存储元素的起始地址int TableLen;//元素个数
}SSTable;
void  ST_Init(SSTable &ST,int len)
{ST.TableLen=len;ST.elem=(ElemType*)malloc(sizeof (ElemType)*ST.TableLen);//申

相关文章:

数据结构排序之冒泡、快速、插入、选择、堆、归并等排序及时间,空间复杂度等(超详解,绝对能满足你的需求,并能学到很多有用知识)

在本文章开始之前给大家介绍个网站,可以通过下面动画网址来理解 ,(国外的网站帮助学习数据结构很多知识,可以翻译下来,在搜索框搜索相应的排序算法进行动画演示,非常好用。)​​​https://www.cs.usfca.edu/~galles/visualization/https://www.cs.usfca.edu/~galles/vis…...

如何在windows环境和linux环境运行jar包

功能:实现对字符串小写转大写 java代码如下: package a_od_test;import java.util.Locale; /* 实现小写转大写 打jar包 分别在windows环境和liunx环境运行*/ public class Main28_To_Upper {public static void main(String[] args) {if (args.length 1) {System.out.printl…...

2602B吉时利2602B数字源表

181/2461/8938产品概述&#xff1a; 2600B系列系统源表SMU仪器是业界领先的电流/电压源和测量解决方案&#xff0c;采用吉时利第三代SMU技术制造。2600B系列提供单通道和双通道型号&#xff0c;将精密电源、真电流源、6-1/2位数字多用表、任意波形发生器、脉冲发生器和电子负载…...

Linux——fork复制进程

1)shell: 在计算机科学中&#xff0c;Shell俗称壳&#xff08;用来区别于核&#xff09;&#xff0c;是指“为使用者提供操作界面”的软件&#xff08;command interpreter&#xff0c;命令解析器&#xff09;。它类似于DOS下的COMMAND.COM和后来的cmd.exe。它接收用户命令&…...

李廉洋:4.10黄金原油晚间走势最新分析及策略。

鉴于美联储官员对1月和2月通胀数据反应不足&#xff0c;3月通胀数据过热可能导致其反应过度的风险更大。美联储试图避免根据一两个数据点来制定政策&#xff0c;但今年迄今为止经济活动的韧性意味着&#xff0c;在年中降息的理由取决于通胀是否恢复自去年下半年以来的稳步下降趋…...

【头歌-Python】字符串自学引导

禁止转载&#xff0c;原文&#xff1a;https://blog.csdn.net/qq_45801887/article/details/137517279 参考教程&#xff1a;B站视频讲解——https://space.bilibili.com/3546616042621301 如果代码存在问题&#xff0c;麻烦大家指正 ~ ~有帮助麻烦点个赞 ~ ~ 字符串自学引导 …...

44-技术演进(下):软件架构和应用生命周期技术演进之路

应用、系统资源、应用生命周期管理这 3 个维度&#xff0c;构成了我们对云的所有诉求。 我会介绍下应用维度和应用生命周期管理维度的技术演进。 我们就先来看下软件架构的演进之路。 软件架构的演进 软件架构技术演进如下图所示&#xff1a; 单体架构 在单体架构中&#xff…...

【C++】C++中的list

一、介绍 官方给的 list的文档介绍 简单来说就是&#xff1a; list是可以在常数范围内在任意位置进行插入和删除的序列式容器&#xff0c;并且该容器可以前后双向迭代。list的底层是双向链表结构&#xff0c;双向链表中每个元素存储在互不相关的独立节点中&#xff0c;在节点中…...

uniapp:Hbuilder没有检测到设备请插入设备或启动模拟器的问题解决

问题 使用模拟器调试运行项目时&#xff0c;出现以下提示&#xff0c;“没有检测到设备&#xff0c;请插入设备或启动模拟器后点击刷新再试”。排查了一天最终找到原因。 解决 已确认模拟器是已经正常启动&#xff0c;并且Hbuilder设置中的adb路径和端口都配置没有问题&#…...

基于RBF的时间序列预测模型matlab代码

整理了基于RBF的时间序列预测模型matlab代码&#xff0c; 包含数据集。采用了四个评价指标R2、MAE、MBE、MAPE对模型的进行评价。RBF模型在数据集上表现非常好。 训练集数据的R2为&#xff1a;0.99463 测试集数据的R2为&#xff1a;0.96973 训练集数据的MAE为&#xff1a;0.…...

vue vue3 手写 动态加载组件

效果展示 一、需求背景&#xff1a; # vue3 项目涉及很多图表加载、表格加载 #考虑手写一个动态加载组件 二、实现思路 通过一个加载状态变量&#xff0c;通过v-if判断&#xff0c;加载状态的变量等于哪一个&#xff0c;动态加载组件内部就显示的哪一块组件。 三、实现效果…...

HTML:表单

目录 案例&#xff1a; 一、form标签 二、input标签 三、textarea标签 四、select标签 五、fieldset 标签 案例&#xff1a; <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>报名表</title> </head> &l…...

即插即用篇 | YOLOv5/v7引入Haar小波下采样 | 一种简单而有效的语义分割下采样模块

本改进已集成到 YOLOv5-Magic 框架。 下采样操作如最大池化或步幅卷积在卷积神经网络(CNNs)中被广泛应用,用于聚合局部特征、扩大感受野并减少计算负担。然而,对于语义分割任务,对局部邻域的特征进行池化可能导致重要的空间信息丢失,这有助于逐像素预测。为了解决这个问题…...

Plonky2.5:在Plonky2中验证Plonky3 proof

1. 引言 Plonky2.5为QED Protocol团队主导的项目&#xff0c;定位为&#xff1a; 在Plonky2 SNARK中验证Plonky3 STARK proof。 从而实现Plonky系列的递归证明。 开源代码实现见&#xff1a; https://github.com/QEDProtocol/plonky2.5https://github.com/Plonky3/Plonky3&a…...

卷积通用模型的剪枝、蒸馏---剪枝篇(此处以deeplabv3+为例,可根据模型自行定制剪枝层)

之后的两篇文章是对前段时间工作的一个总结。 一、环境配置 1.1、文章以b导的代码为模板,环境配置比较简单(第二篇蒸馏篇结束后会放置剪枝蒸馏配置好的百度网盘链接),其他算法自行配置,在剪枝之前,需要保证算法能够在本地跑通。 B导链接: https://github.com/bubbliiiin…...

使用Ollama在本地运行AI大模型gemma

1.下载&#xff1a; https://github.com/ollama/ollama/releases 2.配置环境变量 我的电脑-右键-属性-系统-高级系统设置-环境变量-【系统环境变量】新建 变量名&#xff1a;OLLAMA_MODELS &#xff08;固定变量名&#xff09; 变量值&#xff1a;E:\Ollama\Lib &#xff0…...

【IC前端虚拟项目】时序面积优化与综合代码出版本交付

【IC前端虚拟项目】数据搬运指令处理模块前端实现虚拟项目说明-CSDN博客 到目前为止,我们完成了第一版综合,那么就可以打开报告看一下了,一看就会发现在1GHz时钟下时序真的很差(毕竟虚拟项目里使用的工艺库还是比较旧的,如果用12nm、7mn会好很多): Timing Path Group cl…...

windows版本-idea中下载的java版本在哪

1、点击idea的file-projectStructure 进入&#xff1a; 通过电脑目录进入该目录 找到bin目录&#xff0c;copy该目录地址 copy下来之后设置到系统环境变量中...

设计模式:创建者模式

定义 创建者模式&#xff08;Builder Pattern&#xff09;&#xff0c;又称建造者模式&#xff0c;是一种创建型设计模式&#xff0c;它提供了一种创建对象的最佳方式。该模式允许将一个复杂对象的构建与它的表示分离&#xff0c;这样同样的构建过程可以创建不同的表示。创建者…...

【linux】基础IO(四)

在上一篇基础IO中我们主要讲述了文件再磁盘中的存储&#xff0c;当然我们说的也都只是预备知识&#xff0c;为这一篇的文件系统进行铺垫。 目录 搭文件系统的架子&#xff1a;填补细节&#xff1a;inode&#xff1a;datablock[]: 更上层的理解&#xff1a; 搭文件系统的架子&a…...

BY8X01-16P Arduino音频模块驱动库深度解析

1. 项目概述BY8X01-16P-Arduino 是一款专为 Arduino 生态设计的轻量级、高兼容性音频模块控制库&#xff0c;面向 BY8001-16P 与 BY8301-16P&#xff08;文档中偶见笔误为 BY83001-16P&#xff09;双芯片平台。该库并非简单封装串口指令&#xff0c;而是以嵌入式系统工程视角重…...

从RS485到TCP/IP:Modbus协议V1.1b3的三种组网方式对比(含WireShark抓包分析)

从RS485到TCP/IP&#xff1a;Modbus协议V1.1b3的三种组网方式深度实战解析 在工业自动化领域&#xff0c;Modbus协议已经服役超过40年&#xff0c;却依然保持着惊人的生命力。作为工程师&#xff0c;我们常常面临一个关键抉择&#xff1a;在RS485、Modbus和TCP/IP这三种主流组…...

新手福音:利用快马平台生成你的第一个数学公式编辑器入门项目

最近在自学前端开发&#xff0c;一直想尝试做个数学公式编辑器来练手。作为一个完全的新手&#xff0c;从零开始写这种项目确实有点无从下手。不过我发现用InsCode(快马)平台可以很轻松地生成基础代码框架&#xff0c;再根据自己的需求调整完善&#xff0c;特别适合像我这样的初…...

2026 AI大模型岗位薪资全曝光:从30k到80w,程序员必备指南,非常详细收藏我这一篇就够了

文章主要展示了2026年AI领域热门岗位的薪资情况&#xff0c;包括华为、腾讯、联影等公司在多个城市的AI工程师、大模型算法等职位的薪资水平。数据显示AI人才市场需求旺盛&#xff0c;薪资从月薪3.6万到年包80万不等。文章提供了AI薪资专场的链接&#xff0c;邀请读者了解更多行…...

DeepChat一键启动揭秘:Llama3:8b镜像免配置部署教程(含端口自愈与模型缓存)

DeepChat一键启动揭秘&#xff1a;Llama3:8b镜像免配置部署教程&#xff08;含端口自愈与模型缓存&#xff09; 想体验一个完全私密、响应迅速、且能进行深度对话的AI助手吗&#xff1f;今天&#xff0c;我们将一起揭开DeepChat的神秘面纱。它不是一个需要复杂API密钥和网络调…...

2026最权威一键生成论文工具榜单:这些被高校和导师悄悄推荐的软件你用了吗

一键生成论文工具正成为学术研究的重要助力&#xff0c;其高效性与专业性在近年来得到广泛认可。依托权威检测平台数据、高校实测反馈及用户真实评价&#xff0c;这些工具已逐步成为科研工作者和学生群体的得力助手。本文将盘点2026年最受高校和导师推荐的一键生成论文软件&…...

OpenClaw技能扩展:安装百川2-13B-4bits专用插件提升自动化能力

OpenClaw技能扩展&#xff1a;安装百川2-13B-4bits专用插件提升自动化能力 1. 为什么需要为OpenClaw安装专用插件 去年冬天&#xff0c;我在处理一批技术文档归档任务时&#xff0c;发现OpenClaw的基础能力虽然强大&#xff0c;但在处理特定领域内容时总有些力不从心。比如让…...

MATLAB实战:用BEMD算法分解图像并提取特征(附完整代码)

MATLAB实战&#xff1a;二维经验模态分解(BEMD)在图像特征提取中的创新应用 当我们需要从一张X光片中识别微小病灶&#xff0c;或是从卫星图像中提取城市道路网络时&#xff0c;传统图像处理方法往往力不从心。二维经验模态分解(BEMD)就像给图像做"CT扫描"&#xff0…...

Souliss嵌入式状态同步框架:轻量级去中心化智能家居通信实践

1. Souliss 智能家居网络框架深度解析&#xff1a;面向嵌入式工程师的底层通信架构实践指南Souliss 是一个专为资源受限嵌入式节点设计的轻量级、去中心化智能家居网络框架。其核心目标并非构建通用物联网平台&#xff0c;而是解决真实家庭场景中多协议共存、低功耗节点协同、边…...

Word空白页删不掉?【图文讲解】怎么删除word空白页?word批量删除空白页?5种方法教你彻底删除

&#xff08;1&#xff09;问题背景谁在编辑 Word 时没被顽固空白页气到抓狂&#xff1f;写论文、做报告、整理文案&#xff0c;明明内容已经结束&#xff0c;页面末尾偏偏多出一页空白&#xff0c;删也删不掉、退也退不去。打印时白白浪费纸张&#xff0c;上交文档显得格外不专…...