【数据结构】排序算法复杂度 及 稳定性分析 【图文详解】

排序算法总结

  • 前言
  • [ 一 ] 小数据基本排序算法
    • (1)冒泡排序
    • (2)直接插入排序
  • [ 二 ] (由基本排序衍生的用作)处理大数据处理排序
    • (1)堆排序
    • (2)希尔排序
  • [ 三 ] 大数据速度排序方法
    • (1)快速排序
    • (2)归并排序
  • [ 四 ] 极致速度的整型数据类型的排序
    • (1)计数排序
  • [ 五 ] 其他排序
    • (1)基数排序:一位一位比较
    • (2)桶排序
  • 一、各排序算法的分析和比较
      • 内排序:内存中排序
      • 外排序:在磁盘中排序 【数据太多,内存放不下,转存磁盘了】
  • 二、归并排序 外排序算法思路详解
  • ☆三、稳定性 概念讲解
    • 稳定性的意义 及 实际应用:
  • 四、排序算法复杂度 及 稳定性分析
  • 总结



前言

前面给大家讲述了各大排序算法的原理、思路以及实现步骤、代码码源,下面让我们来对比一下各大排序之间的算法复杂度以及稳定性分析优劣,加深我们对于各排序算法的理解,帮助我们以后能更快的在具体场景下选择出最适的排序算法。



[ 一 ] 小数据基本排序算法

(1)冒泡排序

【数据结构】冒泡排序 (码源实现)

(2)直接插入排序

【数据结构】插入排序


[ 二 ] (由基本排序衍生的用作)处理大数据处理排序

(1)堆排序

【数据结构】堆排序(C代码实现 码源)

(2)希尔排序

【数据结构】希尔排序


[ 三 ] 大数据速度排序方法

(1)快速排序

【数据结构】深入浅出理解快速排序背后的原理 以及 版本优化【万字详解】(C语言实现)

(2)归并排序

【数据结构】归并排序 的递归实现与非递归实现


[ 四 ] 极致速度的整型数据类型的排序

(1)计数排序

【数据结构】深入浅出讲解计数排序【图文详解,搞懂计数排序这一篇就够了】



[ 五 ] 其他排序

(1)基数排序:一位一位比较

(2)桶排序

这两种在这里不过多赘述,因为不如前面的高级排序更好,更加适用



一、各排序算法的分析和比较

在这里插入图片描述

内排序:内存中排序

外排序:在磁盘中排序 【数据太多,内存放不下,转存磁盘了】

  • 磁盘一大特点:
    1. 顺序读 顺序写
    2. 不像内存那样支持下标访问,所以外排序会非常慢

归并排序既可以在内存中排序(内排序),也可以在磁盘中排序(外排序)

二、归并排序 外排序算法思路详解

在这里插入图片描述



☆三、稳定性 概念讲解

相同的数据排序后,相对位置是否变化

稳定性的意义 及 实际应用:

如考试中,考试排名取前三名,先交卷用时少的,成绩先进入数组
排名中成绩高排优先级更高,若成绩相同时,用时少的优先级更高

或 总分相同的,数学更高的优先级更高。
在这里插入图片描述
这经常应用于 结构体排序用结构体指针按某一项去进行比较


四、排序算法复杂度 及 稳定性分析

  • 直接插入排序 稳 遇到相等的就不再往前移了
    • 归并排序 不稳改稳
      在这里插入图片描述
      在这里插入图片描述
      多为 结构体指针 谈稳定性,计数排序谈稳定性无价值。


总结

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/183418.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MapReduce性能优化之小文件问题和数据倾斜问题解决方案

文章目录 MapReduce性能优化小文件问题生成SequenceFileMapFile案例 :使用SequenceFile实现小文件的存储和计算 数据倾斜问题实际案例 MapReduce性能优化 针对MapReduce的案例我们并没有讲太多,主要是因为在实际工作中真正需要我们去写MapReduce代码的场…

12 款小众宝藏AI工具,90% 的开发者不了解

AI工具的发展一日千里,了解这些AI工具的功能以及它们如何提高开发过程中的效率和创新,变得尤为重要,这里分享了 12个宝藏的人工智能和低代码工具,希望对大家的工作与学习有所帮助。 1.Pieces for Developers 网址:ht…

【ElasticSearch系列-05】SpringBoot整合elasticSearch

ElasticSearch系列整体栏目 内容链接地址【一】ElasticSearch下载和安装https://zhenghuisheng.blog.csdn.net/article/details/129260827【二】ElasticSearch概念和基本操作https://blog.csdn.net/zhenghuishengq/article/details/134121631【三】ElasticSearch的高级查询Quer…

麒麟系统 UFW 操作文档

麒麟系统 UFW 操作文档 1. UFW 介绍 ufw(简单防火墙 Uncomplicated FireWall)真正地简化了 iptables,虽然 ufw 的底层依 然会调用 iptables,但是配置防火墙规则时操作更加方便,命令更加简洁,本文档主要介…

Android Studio(对话框AlertDialog)

前言 前面介绍了常用控件的相关属性,那些控件的使用起来也很容易。在本节及后面的章节介绍的控件将是相比于前面使用起来较为复杂的(不过使用多了,也很容易上手)。 这些控件常常需要配合java代码来使用,比如说对话框、…

三国志14信息查询小程序(历史武将信息一览)制作更新过程03-主要页面的设计

1,小程序的默认显示 分为三部分,头部的标题、中间的内容区和底部的标签栏。点击标签可以切换不同页面,这是在app.json文件中配置的。代码如下: //所有用到的页面都需要在 pages 数组中列出,否则小程序可能会出现错误或…

Red Giant Trapcode Suite 2024.0.1

Red Giant Trapcode Suite是一款ae视觉效果插件软件,适用于After Effects和Premiere Pro等流行的视频编辑软件。该软件集合了一系列强大而创新的工具,可以帮助用户创建令人惊叹的视觉效果和动态图形。 Red Giant Trapcode Suite包含多种插件&#xff0c…

GPT-4V:AI在医疗领域的应用

OpenAI最新发布的GPT-4V模型为ChatGPT增添了语音和图像功能,为用户提供了更多在日常生活中使用ChatGPT的方式。这次更新将为用户带来更加便捷、直观的交互体验,用户可以直接通过拍照上传图片,并提出相关问题。OpenAI的最终目标是构建一个安全…

安卓系统手机便签app使用哪一款?

在现代快节奏的生活中,我们经常会遇到各种繁忙的事务和容易遗忘的备忘事项。为避免大家遗忘重要的事情,大家可以在常用的手机上安装记录备忘事项的工具,为了帮助安卓用户高效地记录和管理这些信息,今天我将向大家推荐一款功能强大…

ElasticSearch集群环境搭建

1、准备三台服务器 这里准备三台服务器如下: IP地址主机名节点名192.168.225.65linux1node-1192.168.225.66linux2node-2192.168.225.67linux3node-3 2、准备elasticsearch安装环境 (1)编辑/etc/hosts(三台服务器都执行) vim /etc/hosts 添加如下内…

竞赛选题 深度学习大数据物流平台 python

文章目录 0 前言1 课题背景2 物流大数据平台的架构与设计3 智能车货匹配推荐算法的实现**1\. 问题陈述****2\. 算法模型**3\. 模型构建总览 **4 司机标签体系的搭建及算法****1\. 冷启动**2\. LSTM多标签模型算法 5 货运价格预测6 总结7 部分核心代码8 最后 0 前言 &#x1f5…

数学建模比赛中常用的建模提示词(数模prompt)

以下为数学建模比赛中常用的建模提示词,希望对你有所帮助! 帮我总结一下数学建模有哪些预测类算法? 灰色预测模型级比检验是什么意思? 描述一下BP神经网络算法的建模步骤 对于分类变量与分类变量相关性分析用什么算法 前10年的数据分别是1&a…

QT 实现两款自定义的温度计/湿度控件

文章目录 0 引入1、带有标尺的温度/湿度计控件1.头文件2.核心代码 2、竖起来的温度/湿度计控件1.头文件2.实现 3、引用 0 引入 QT原生控件没有实现如仪表盘或者温度计的控件,只好自己实现,文章代码部分参考引用的文章。直接上图 图一 带有标尺的温度计…

「随笔」IT行业哪个方向比较好就业

一、IT行业就业的PEST分析 在当前的全球经济环境下,IT行业的发展迅速,就业前景广阔。以下从政治、经济、社会和科技四个维度对IT行业就业进行PEST分析。 1.1 政治(Political) 政府政策:近年来,各国政府都…

gma 1.x 气候气象指数计算源代码(分享)

本模块的主要内建子模块如下: 如何获得完整代码: 回复博主 或者 留言/私信 。 注意:本代码完全开源,可随意修改使用。 但如果您的成果使用或参考了本段代码,给予一定的引用说明(非强制)&#xf…

python 数据挖掘库orange3 介绍

orange3 是一个非常适合初学者的data mining library. 它让使用者通过拖拽内置的组件来形成工作流。让你不需要写任何代码就可以体验到数据挖掘和可视化的魅力。 它的桌面如下,这里我创建了 3 个节点,分别是数据集、小提琴图,散点图 其中 …

[NLP] Llama2模型运行在Mac机器

本文将介绍如何使用llama.cpp在MacBook Pro本地部署运行量化版本的Llama2模型推理,并基于LangChain在本地构建一个简单的文档Q&A应用。本文实验环境为Apple M1 芯片 8GB内存。 Llama2和llama.cpp Llama2是Meta AI开发的Llama大语言模型的迭代版本,…

泛微OA_lang2sql 任意文件上传漏洞复现

简介 泛微OA E-mobile系统 lang2sql接口存在任意文件上传漏洞,由于后端源码中没有对文件没有校验,导致任意文件上传。攻击者可利用该参数构造恶意数据包进行上传漏洞攻击。 漏洞复现 FOFA语法: title"移动管理平台-企业管理" 页…

移远通信蝉联“年度杰出创新企业”大奖,以核心技术实力永攀行业高峰

11月2日,“国际集成电路展览会暨研讨会”(IIC Shenzhen 2023)在深圳大中华交易广场重磅启幕。业界领袖共探国内外创新技术与产品成果,并对推动全球电子产业创新做出贡献的企业进行了表彰。其中,全球领先的物联网整体解…

<蓝桥杯软件赛>零基础备赛20周--第4周--杂题-1

报名明年4月蓝桥杯软件赛的同学们,如果你是大一零基础,目前懵懂中,不知该怎么办,可以看看本博客系列:备赛20周合集 20周的完整安排请点击:20周计划 每周发1个博客,共20周(读者可以按…