#include "stdio.h"
#include "stdlib.h"
#include "time.h"
#define MAXKEY 8000
#define DataKey int
typedef struct{
DataKey keys[MAXKEY+1];
int length;
}spList;
void insert_sort(int array[],int size);
//直接插入排序
void BinInsert_sort(int array[],int size);
//二分插入排序
void shell_sort(int array[],int size);
//希尔排序
void shell_insert_sort(int array[],int size,int gra);
//希尔排序时,指定步长直接插入排序
void Bubble_sort(int array[],int size);
//交换排序
void quick_sorting(int array[],int low,int high);
//快速排序
int quick_sort(int array[],int low,int high);
//快速排序时需要用到的分步排序,是快速排序调用的递归函数
void select_sort(int array[],int size);
//选择排序
void heap_sorting(int array[],int size);
//递归堆排序,也就是反复将最大的元素后移
void heap_sort(int array[],int size);
//堆排序(这里仅仅只是进行第一次建堆)
void alter_heap(int array[],int size,int k);
//调整堆,从K一直往下调整堆
void alter_merg(int temp[],int merg_array[],int low,int mid,int high);
//将存在temp[]里的元素进行归并
void Merg_sorting(int array[],int merg_array[],int low,int high);
//归并排序
int is_sorted(int array[],int size);
//判断一组数是否已经完成了排序
void mathod_analysis();