排序问题

概述

排序问题 是算法设计中最基本的问题之一:给定一个元素序列,将其按非递减顺序重新排列。排序问题是衡量算法设计技术优劣的经典基准问题。

定义

排序问题

输入:包含 个数的一个序列 输出:输入序列的一个排列 ,使得

核心性质

  • 关键字(Key):决定元素排序顺序的值。排序操作实际是对关键字的排序。
  • 卫星数据(Satellite Data):与关键字一起移动的附带信息。排序时关键字是排序依据,卫星数据跟随关键字一起移动。
  • 原地排序:仅需常数额外空间的排序算法(如插入排序、堆排序)。
  • 稳定性:相等关键字元素的相对顺序在排序后保持不变。

章节扩展

第2章:入门

  • 2.1 插入排序:以排序问题为背景引入插入排序,讨论了关键字与卫星数据的概念。
  • 2.3 分治法:以排序问题为背景引入归并排序,展示了分治策略如何将排序问题的复杂度从 降低到

参见