本文详细介绍了七种常见的排序算法,包括它们的工作原理和应用场景,并对每种算法的时间复杂度进行了全面的分析与对比。
以下是排序菜单及其功能的描述:
```c
void paixucaidan() {
int i;
SeqList R;
input_int(R);
printf(\t******** Select **********\n);
printf(\t1: 插入排序\n);
printf(\t2: 冒泡法排序\n);
printf(\t3: 快速排序\n);
printf(\t4: 直接选择排序\n);
printf(\t5: 堆排序\n);
printf(\t6: 归并排序\n);
printf(\t7: 希尔排序\n);
printf(\t***************************\n);
scanf(%d, &i); // 输入整数1-7,选择排序方式
switch (i) {
case 1:
InsertSort(R);
break; // 选值为1时执行插入排序
case 2:
BubbleSort(R);
break; // 选值为2时执行冒泡法排序
case 3:
QuickSort(R, 1, n);
break; // 选值为3时执行快速排序
case 4:
SelectSort(R);
break; // 选值为4时执行直接选择排序
case 5:
HeapSort(R);
break; // 选值为5时执行堆排序
case 6:
MergeSort(R);
break; // 选值为6时执行归并排序
case 7:
ShellSort(R);
break; // 选值为7时执行希尔排序
}
printf(Sort result:);
output_int(R);
printf(\n);
}
```
这段代码定义了一个函数`paixucaidan()`,用于显示一个菜单并根据用户的选择调用不同的排序算法。用户输入1-7之间的数字来选择相应的排序方式,并执行对应的排序操作后输出结果。