美文网首页
46_排序的基本概念

46_排序的基本概念

作者: 编程半岛 | 来源:发表于2018-07-17 15:20 被阅读12次

关键词:排序的一般定义、排序的数学定义、排序的稳定性、多关键字排序、排序中的关键操作、排序的审判

0. 排序的一般定义

排序是计算机内经常进行的一种操作,其目的是将一组无序的数据元素调整为有序的数据元素。

1. 排序的数学定义

2. 排序的稳定性

如果在序列中有两个数据元素r[i]和r[j],他们的关键字k[i] == k[j],且在排序之前,对象r[i]在r[j]前面:
如果在排序之后,对象r[i]仍在对象r[j]的前面,则称这个排序方法是稳定的,否则称这个排序方法是不稳定的。

3. 多关键字排序

排序时需要比较的关键字多于一个时:

  • 排序结果首先按关键字1进行排序
  • 当关键字1相同时按关键字2进行排序
    ...
  • 当关键字n-1相同时按关键字n进行排序

对于多关键字排序,只需要在比较操作时考虑多个关键字即可

4. 排序中的关键操作

  • 比较:任意两个数据元素通过比较操作确定先后次序
  • 交换:数据元素之间交换才能得到预期结果

5. 排序的审判

  • 时间性能:关键性能差异体现在比较和交换的数量
  • 辅助存储空间:为完成排序操作需要的额外的存储空间,必要时可以空间换时间
  • 算法的实现复杂性:过于复杂的排序法可能影响可读性和维护性

6. DTLib中排序类

排序类的继承关系图

7. 小结

  • 排序时数据元素从无序到有序的过程
  • 排序具有稳定性,是选择排序算法的因素之一
  • 比较和交换是排序的基本操作
  • 多关键字排序与单关键字排序无本质区别
  • 排序的时间性能是区分排序算法好坏的主要因素

声明:此文章仅是本人在学习狄泰学院《数据结构实战开发教程》所做的笔记,文章中包含狄泰软件资料内容,一切版权归狄泰软件所有!
实验环境:ubuntu10 + Qt Creator2.4.1 + Qt SDK 4.7.4

相关文章

  • 46_排序的基本概念

    关键词:排序的一般定义、排序的数学定义、排序的稳定性、多关键字排序、排序中的关键操作、排序的审判 0. 排序的一般...

  • 46_深入聚合数据分析_颜色+品牌下钻分析时按最深层metric

    46_深入聚合数据分析_颜色+品牌下钻分析时按最深层metric进行排序 颜色---下钻品牌,再按照品牌的价格进行...

  • 《数据结构》第八章:排序

    8.1 排序的基本概念 8.2.1 插入排序 8.2.2 希尔排序 8.3.1 冒泡排序 8.3.2 快速排序 8...

  • PHP算法系列教程(二)-希尔排序

    希尔排序 基本概念 希尔排序(Shell's Sort)是插入排序的一种又称“缩小增量排序”(Diminishin...

  • 算法之冒泡排序

    算法之冒泡排序 一:基本概念冒泡排序(Bubble Sort),又被称为气泡排序或泡沫排序;它是一种比较简单的排序...

  • 排序算法知识点思维导图

    以上知识导图包括【排序的基本概念】、【插入排序-(直接插入、折半插入、希尔排序)】、【选择排序-(简单选择排序、堆...

  • 排序算法(二)希尔排序算法

    排序算法(二)希尔排序算法 1.基本概念  希尔排序(Shell's-Sort)是插入排序的一种又称“缩小增量排序...

  • 排序

    1. 基本概念 排序方式 内排序:整个排序过程中,待排序的所有数据都放置于内存中外排序:整个排序过程中,待排序的所...

  • 数据结构01-常规排序算法

    第一章 常规排序算法 第一章 常规排序算法一、排序的基本概念排序内部排序与外部排序排序的稳定性二、冒泡排序算法思想...

  • 排序算法(三)折半插入排序算法

    排序算法(三)折半插入排序算法 1.基本概念  折半插入排序(Binary-Insertion-Sort)是对插入...

网友评论

      本文标题:46_排序的基本概念

      本文链接:https://www.haomeiwen.com/subject/qdwwpftx.html