如下图所示的代码,是《大话数据结构》第9章节中的七大排序算法汇总,本人写了一个main主函数来进行算法排序的测试,只要把代码运行起来后在终端中输入10个数字然后回车就能把所有排序算法的结果打印出来,如果需要输入其他数目的数字,只需要修改代码中最前面定义的MAXSIZE函数就行。
#include<iostream>
using namespace std;
constexpr auto MAXSIZE = 10;
typedef int status;
typedef struct
{
int r[MAXSIZE + 1];
int length;
}SqList;
void swap(SqList* L, int i, int j);
//简单比较排序
void BubbleSort0(SqList* L);
//冒泡排序函数声明
void BubbleSort(SqList* L);
//插入排序函数声明
void InsertSort(SqList* L);
//希尔排序函数声明
void ShellSort(SqList *L);
//堆排序用到的函数声明
void HeapSort(SqList *L);
void HeapAdjust(SqList *L,int s,int m);
//归并排序用到的函数声明
void MergeSort(SqList *L);
void MSort(int SR[],int TR1[],int s,int t);
void Merge(int SR[],int TR[],int i,int m,int n);
//快速排序用到的函数声明
void QuickSort(SqList* L);
void QSort(SqList *L,int low,int high);
int Partition(SqList *L,int low,int high);
/*交换L中数组r的下标为i和j的值*/
void swap(SqList* L, int i, int j)
{
int temp =