这是系统级程序设计课程的第一个实验报告。
一、场景描述
用函数指针数组存放各种排序算法,通过指针去调用算法进行排序。
在本程序中,一共定义了4种排序算法——选择排序、插入排序、希尔排序、归并排序(当然后期还能加入更多的排序算法,比如冒泡排序) 。定义了一个通用排序接口void sort(void (sortAlgorithm)(int,int),int *array, int n) ,在主程序中由用户选择使用何种排序算法,调用sort方法,传入函数指针数组中对应的项,进行排序并且输出排序后的结果。
二、代码
/*
* 函数指针数组的应用————多种排序算法
* 用函数指针数组存放各种排序算法,通过指针去调用算法进行排序
*/
#include <stdio.h>
//比较大小
int less(int v, int w) {
if (v < w) {
return 1;
}
else return 0;
}
//交换位置
void exch(int *array,int v, int w) {
int tmp = array[v];
array[v] = array[w];
array[w] = tmp;
}
//打印数组
void show(int *array, int n) {
for (int i = 0; i < n; ++i) {
printf("%d ", array[i]);
}
printf(&