排序算法 常见排序算法特性比较

news/2024/11/14 13:39:26/文章来源:https://www.cnblogs.com/DSCL-ing/p/18365073

目录
  • 排序的概念
    • 内外部排序
    • 稳定与非稳定排序
    • 改进排序的指标
    • 图片

排序的概念

排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。

image-20240814133706190

内外部排序

内部排序:数据元素全部放在内存中的排序。
外部排序:数据元素太多不能同时放在内存中,根据排序过程的要求不能在内外存之间移动数据的排序。

稳定与非稳定排序

稳定排序:能够通过一些控制手段达到具有稳定性的排序

  1. 直接插入排序

  2. 冒泡排序

  3. 归并

稳定性在某些场景下需要:一场考试,可能会有相同分数出现,为了给相同分数排名,选择让先交卷的排名更高;在这种场景下,稳定性的作用就体现了.这种场景是一种对键值对<key,value>数据的排序.

不稳定排序:无法具有稳定性的排序

  1. 希尔排序

  2. 快速排序

  3. 直接选择排序

image-20240816212036038

  1. 堆排序

image-20240816212250177

改进排序的指标

  • 比较次数
  • 移动次数

图片

image-20240814133546351

image-20240814133602387

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

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

相关文章

JetBrains PyCharm 2024.2 (macOS, Linux, Windows) - 面向专业开发者的 Python IDE

JetBrains PyCharm 2024.2 (macOS, Linux, Windows) - 面向专业开发者的 Python IDEJetBrains PyCharm 2024.2 (macOS, Linux, Windows) - 面向专业开发者的 Python IDE JetBrains 跨平台开发者工具 请访问原文链接:https://sysin.org/blog/jetbrains-pycharm/,查看最新版。原…

为何AI更懂你:向量搜索,了解一下!

现在,你有没有发现自己越来越多地依赖推荐系统,有时候自己搜到的结果好像还没有AI推荐的精准。现在,你有没有发现自己越来越多地依赖推荐系统,有时候自己搜到的结果好像还没有AI推荐的精准。 那估计有人好奇了,推荐系统怎么这么“聪明”的呢?答案就是:“向量搜索”。今天…

dotnet X11 简单使用 MIT-SHM 共享内存推送图片

这是我在尝试优化 Avalonia 在 Linux 上的低端设备的渲染性能时所研究的方式,本文将告诉大家如何简单使用 XShmPutImage 等 X11 的 XShm Extension 扩展方法,通过共享内存的方式推送图片众所周知,在 X11 里面有经典的 Client-Server 模型。客户端程序是属于 Client 角色,需…

读软件开发安全之道:概念、设计与实施04缓解

读软件开发安全之道:概念、设计与实施04缓解1. 缓解 1.1. 安全思维转换为有效行动的方法就是首先预判威胁,然后针对可能的漏洞加以保护 1.2. 主动响应的做法就叫做“缓解”1.2.1. mitigation1.2.2. 喂宝宝的时候给孩子围上围嘴,避免掉下来的食物粘在宝宝的衣服上,还有安全带…

Java虚拟机精选面试题20道

原文地址:https://www.jb51.net/article/215065.htm 1.介绍下Java内存区域(运行时数据区)。 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为以下6个运行时数据区域。程序计数器(Program Counter Register) 一块较小的内存空间,可以看作当前线程所执行的字节码…

INE - Advanced Web Application Penetration Testing (eWPTx)

Encoding and Filtering URL编码:https://perishablepress.com/stop-using-unsafe-characters-in-urls/ HTML编码:需要知道如何编码以及如何解码文档字符编码:HTTP协议或指令 https://datatracker.ietf.org/doc/html/rfc2616 Content-Type:text/html; charset=utf-8 如果未定…

RCE漏洞常用的Payload总结

关于远程代码执行 常用的payload(linux和windows) RCE:远程代码执行 (RCE) 使攻击者能够通过注入攻击执行恶意代码。代码注入攻击不同于命令注入攻击。攻击者的能力取决于服务器端解释器的限制。在某些情况下,攻击者可能能够从代码注入升级为命令注入。远程代码评估可能导致…

第十一周-云计算运维作业

总结 tomcat实现多虚拟机vim ../conf/server.xml <Host name="www.b.com" appBase="/data/website2/"unpackWARs="true" autoDeploy="true"> </Host><Host name="www.a.com" appBase="/data/website3…

从高斯消元法到特征值特征向量

帮助具有特征值和特征向量等线性代数的基础概念但不能理解其意义的读者理解特征值和特征向量出现的意义。从高斯消元法到矩阵乘法、用矩阵乘法的两套解释逻辑解释相似矩阵,用相似矩阵解释特征值和特征向量。摘要: 帮助具有特征值和特征向量等线性代数的基础概念但不能理解其意…

[rCore学习笔记 025]分时多任务系统与抢占式调度

写在前面 本随笔是非常菜的菜鸡写的。如有问题请及时提出。 可以联系:1160712160@qq.com GitHhub:https://github.com/WindDevil (目前啥也没有 本节重点 本章最开始的时候讲解了有类似于多道程序与协作式调度的区别. 回想上一节,我们提到的,如果我们仍然是不使用上一节实现…

自动化部署、通知、分布式构建与并行构建(jenkins pipeline)

jenkins与ansible集成应该需要在Jenkins上安装一下[root@mcw15 plugins]# yum install -y ansible打开配置[root@mcw15 plugins]# vim /etc/ansible/ansible.cfg [root@mcw15 plugins]# grep host_key_checking /etc/ansible/ansible.cfg host_key_checking = False [root@mcw…

【待做】Windows反沙箱检测

免责声明 本文仅用于学习和技术研究,读者利用本文所提供的信息造成的任何直接或间接的影响和损失均由该读者负责,文章作者不为此承担任何责任,请遵守国家网络安全法,维护良好的网络环境。前言 本文将介绍有关杀软行为检测中沙箱云传的一些对抗技巧,比较知名的杀软都会将可…