#include #include #include #define MAX 100 typedef int DataType; typedef struct list{ DataType data[MAX]; int start; int length; }List; /* 直接插入排序 */ void DirectSort(List *L){ int j; for(int i = 2; i <= L->length; i++){ L->data[0] = L->data[i]; j = i-1; while(L->data[0] < L->data[j]){ L->data[j+1] = L->data[j]; j = j-1; } L->data[j+1] = L->data[0]; } } /* 快速排序 */ void QuickSort(List *L, int first, int end){ int i = first, j = end, temp = L->data[i]; while(i < j){ while(i < j && temp <= L->data[j]){ j--; } L->data[i] = L->data[j]; while(i < j && L->data[i] <= temp){ i++; } L->data[j] = L->data[i]; } L->data[i] = temp; if(first < i-1){ QuickSort(L, first, i-1); } if(i+1 < end){ QuickSort(L, i+1, end); } } /* 输入数组元素 */ void input(List *L){ printf("请输入线性表长度:"); scanf("%d", &L->length); for(int i=L->start; istart + L->length; i++){ printf("请输入第 %d 个元素:", i + 1 - L->start); scanf("%d", &L->data[i]); } } /* 输出数组元素 */ void output(List L){ printf("数组元素为:\n"); for(int i=L.start; i