首页 > 其他分享 >数据结构--排序

数据结构--排序

时间:2023-08-02 10:34:30浏览次数:33  
标签:排序 -- 元素 数据量 数据结构 方法 比较

什么是排序?

排序:将无序序列排成一个有序序列的运算.

image-20230802095848034

排序的应用非常广泛.

image-20230802100121959

排序方法的分类

image-20230802100235445

按照储存介质分类.

内部排序:数据量不大,数据在内存,无序内外存交换数据.

外部排序:数据量较大,数据在外存(文件排序).

image-20230802100448963

按比较器个数分类

  1. 串行排序:单处理机(同一时刻比较一对元素)
  2. 并行排序:多处理机(同一时刻比较多对元素)

image-20230802100737661

按主要操作分为

比较排序:使用比较的方法排序

基数排序:不比较元素的大小,仅仅根据元素本身的取值确定其有序位置.

image-20230802100951538

按辅助空间可分为

原地排序:辅助空间用量为O(1)的排序方法。
(所占的辅助存储空间与参排序的数据量大小无关)
非原地排序:捕助空间用量超过可的排序方法。

image-20230802101135137

按稳定性按分为:
稳定排序:能够使任何数值柚等的元素,排序以后相对次序不变。
非稳定性排序:不是稳定排序的方法。

image-20230802101152011

稳定排序:相对位置不发生改变

不稳定排序:相对位置发生改变

image-20230802101352639

排序的稳定性只对结构类型数据排序有意义。

image-20230802101544694

·按自然性可分为:
·自然排序:输入数据越有序,排序的速度越快的排序方法。
·非自然排序:不是自然排序的方法。

image-20230802101633557

重点学习

内部排序

串行排序

比较排序

基数排序

image-20230802101812945

存储结构--记录序列以顺序表存储

image-20230802102020979

标签:排序,--,元素,数据量,数据结构,方法,比较
From: https://www.cnblogs.com/harper886/p/17599900.html

相关文章

  • 进程与线程
    进程进程就是一个程序的执行实例,也就是正在执行的程序,是操作系统资源分配的基本单位。进程的概念主要有两点:1.进程是一个实体。每个进程都有独立的代码和数据空间(程序上下文),即自己的地址空间。2.进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程......
  • OpenCV实战:从图像处理到深度学习的全面指南
    本文深入浅出地探讨了OpenCV库在图像处理和深度学习中的应用。从基本概念和操作,到复杂的图像变换和深度学习模型的使用,文章以详尽的代码和解释,带领大家步入OpenCV的实战世界。1.OpenCV简介什么是OpenCV?OpenCV(OpenSourceComputerVisionLibrary)是一个开源的计算机视觉和......
  • ST表
    1#include<bits/stdc++.h>2usingnamespacestd;3constintN=1e5+9;45intn,m;6inta[N];7intf[N][30];//表示从第i个数开始(包括第i个)走2j个数的一个区间89intmain(){10std::ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);11ci......
  • C# 获取汉字拼音首字母
    privatestaticstringGetCharSpellCode(stringvalue){longiCnChar;byte[]ZW=Encoding.Default.GetBytes(value);if(ZW.Length==1)returnvalue.ToUpper();inti1=ZW[0];i......
  • PHPGD库如何使用SVG格式进行图像处理
    使用PHPGD库进行图像处理是PHP编程开发中常用的技术,而将其与SVG格式结合使用可以使图像处理更加灵活、高效和美观。本篇文章将围绕PHPGD库如何使用SVG格式进行图像处理展开探讨。一、什么是SVG格式?PHPGD库如何使用SVG格式进行图像处理SVG是可缩放矢量图形(ScalableVectorGra......
  • [转载] 解决Pycharm中右键运行python程序时出现Run ‘pytest‘ in XXX.py
    1、在Pycharm中右键运行python程序时出现Run'pytest'inXXX.py,这是进入了Pytest模式。2、解决办法进入到File-Seetings-Tools-PythonintegratedTools页面,找到Testing下的Defaulttestrunner,把Pytest设置为Unittests就可以了————————————————原文链接:ht......
  • 2023年下半年南宁/重庆/深圳软考信息系统项目管理师报名
    信息系统项目管理师是全国计算机技术与软件专业技术资格(水平)考试(简称软考)项目之一,是由国家人力资源和社会保障部、工业和信息化部共同组织的国家级考试,既属于国家职业资格考试,又是职称资格考试。信息系统项目管理师,属于软考三个级别中的“高级”。 2023年下半年南宁/重庆/深圳软考......
  • 2023年9月南宁/重庆/深圳DAMA-CDGA/CDGP认证考试报名
    据DAMA中国官方网站消息,2023年度第三期DAMA中国CDGA和CDGP认证考试定于2023年9月23日举行。 报名通道现已开启,相关事宜通知如下: 考试科目: 数据治理工程师(CertifiedDataGovernanceAssociate,CDGA)数据治理专家(CertifiedDataGovernanceProfessional,CDGP) 考试时间: CDGA:2023......
  • #yyds干货盘点#什么是死锁以及如何解决死锁
    死锁是指两个或多个线程在互相等待对方释放锁的状态,从而导致程序无法继续执行的情况。在Java多线程中,死锁通常是由于以下四种情况的组合所导致的:互斥:多个线程竞争同一资源(如锁),每次只能有一个线程占用,其他线程必须等待。占有且等待:线程在持有锁的同时,等待其他线程持有的锁。不可抢占......
  • spring的事务注解详解
    Spring是一个流行的开发框架,它提供了很多功能和特性,其中包括事务管理。事务管理是在应用程序中执行一系列操作时,确保数据的一致性和完整性的关键方面之一。Spring框架提供了多种方式来管理事务,其中最常用的方式是使用注解。通过在方法或类级别上添加特定的注解,可以将相关的方法或类......