内部排序算法的简单介绍

排序是程序开发中一种非常常见的操作,对一组任意的数据元素(或记录)经过排序操作后,就可以把他们变成一组按关键字排序的有序序列。

假设含有n个记录的序列为{R1,R2,…,Rn},其相应的关键字序列为{K1,K2,…,Kn}。将这些记录重新排序为{Ri1,Ri2,…,Rin},使得相应的关键字值满足条件 Ki1≤Ki2≤…≤Kin,这样的一种操作称为排序。
一旦将一组杂乱无章的记录重排成一组有序记录,接下来就能快速从这组记录中找到目标记录。因此通常来说,排序的目的是快速查找。

对于一个排序算法来说,一般从如下3个方面来衡量算法的优劣。

  • 时间复杂度:它主要是分析关键字的比较次数和记录的移动次数。
  • 空间复杂度:分析排序算法中需要多少辅助内存。
  • 稳定性:若两个记录A和B的关键字值相等,但排序后A、B的先后次序保持不变,则称这种排序算法是稳定的;反之,就是不稳定的。

内部排序的分类

  • 选择排序(直接选择排序、堆排序)
  • 交换排序(冒泡排序、快速排序)
  • 插入排序(直接插入排序、折半插入 排序、Shell排序)
  • 归并排序
  • 桶式排序。
  • 基数排序

你可能感兴趣的:(内部排序算法的简单介绍)