数据结构——五十六、排序的基本概念(王道408)

文章目录

前言

本文介绍了排序的基本概念与评价指标。排序是将元素按关键字重新排列的过程,评价标准包括时间复杂度、空间复杂度和稳定性(相同关键字元素顺序是否改变)。排序分为内部排序(数据全在内存)和外部排序(数据量过大需磁盘读写)。文章指出稳定算法未必优于不稳定算法,需视需求而定,并提供了可视化学习资源链接。

一.什么是排序

  • 排序(sort) ,就是重新排列表中的元素,使表中的元素满足按关键字有序 的过程。
    输入:n 个记录 R 1 , R 2 , ... , R n R_{1},R_{2},\dotsc ,R_{n} R1,R2,...,Rn,对应的关键字为 k 1 , k 2 , ... , k n k_{1},k_{2},\dotsc ,k_{n} k1,k2,...,kn。
    输出:输入序列的一个重排 R 1 , R 2 , ... , R n R_{1}, R_{2}, \dotsc, R_{n} R1,R2,...,Rn,使得有 k 1 ≤ k 2 ≤ ... ≤ k n k_{1}\leq k_{2}\leq\dotsc\leq k_{n} k1≤k2≤...≤kn。(也可递减)

二.排序算法的评价指标

1.内容

  • 时间复杂度
  • 空间复杂度
  • 算法的稳定性。若待排序表中有两个元素 R i R_i Ri和 R j R_j Rj,其对应的关键字相同即 k e y i = k e y j key_i=key_j keyi=keyj,且在排序前 R i R_i Ri在 R j R_j Rj的前面,若使用某一排序算法排序后, R i R_i Ri仍然在 R j R_j Rj的前面,则称这个排序算法是稳定的,否则称排序算法是不稳定的。

2.具体例子

  1. 两个3的顺序未改变,稳定
  2. 两个3的顺序改变,不稳定

问:稳定的排序算法一定比不稳定的好?

答:不一定,要看实际需求。

三.内部排序

  • 数据都在内存中
  • 关注如何使算法时、空复杂度更低

四.外部排序

  • 数据太多,无法全部放入内存
  • 关注如何使算法时、空复杂度更低,还要关注如何使读/写磁盘次数更少

五.知识回顾与重要考点


一个神奇的学习网站

结语

四更😉
如果想查看更多章节,请点击:一、数据结构专栏导航页

相关推荐
江畔柳前堤13 分钟前
前台·中台·后台:2026年AI原生时代的架构全景图
开发语言·人工智能·算法·机器学习·架构·scala·ai-native
Figo_Cheung24 分钟前
Figo基于RNC理论的宇宙演化第七纪元猜想
开发语言·php
职场的momo29 分钟前
字节生活服务海量内推,挑战亿级订单与AI交易中台
人工智能·程序人生·面试·职场和发展·跳槽·生活·业界资讯
文心快码BaiduComate1 小时前
2026 OPC x AI Coding 趋势案例交流会圆满落幕:一个人就一支研发团队
算法
ACM-moran1 小时前
条件显化(二分单峰函数+构造数列)
算法·推公式·整数三分
闻缺陷则喜何志丹1 小时前
【栈 运算系统】P3719 [AHOI2017初中组] rexp|普及+
c++·算法··洛谷·运算系统
泡海椒1 小时前
JQuick-Curl 二次开发:自定义解析器、扩展点开发指南,如何把框架能力真正变成团队资产
java·开发语言·okhttp·maven
疯狂打码的少年2 小时前
【数据库技术】多值依赖与第四范式(4NF)
数据库·笔记·算法
子文雨2 小时前
基于 uC3845 与 ATtiny13 双芯片架构的 8.4V/2.5Ah 锂电池智能充电器设计
单片机·嵌入式硬件·算法
青山木2 小时前
Hot 100 --- 数组中的第K个最大元素
java·数据结构·算法·排序算法