说到排序,我先给大家介绍一个慨念,排序的稳定性。
对于两个或两个以上的关键字相等的记录,排序的结果可能会存在不唯一性,这就牵扯到稳定与不稳定。
假设k1 = k2,k1在k2前面,且排序后的序列,k1,k2对应的值没发生前后变化,就说这种排序是稳定的,反之,不稳定。
如图:
下面再提一个慨念,内排序和外排序。
内排序:在整个排序过程中,待排序的所有记录都被放置在内存 中。
外排序:由于排序的记录太多,不能同时放置在内存中,整个过程,要在内外存之间多次交换数据才行。
下面切入正题,我先对数据结构排序的种类做个分类如图(归并排序不做介绍 ):
下面直接介绍它们对于的程序,在程序中有部分注释,大家可以自行理解。
#include "string.h"
#include "stdio.h"
#include "stdlib.h"
#include