除了使用典型的冒泡排序法进行排序外, 下面使用了一种全新的排序算法对数组元素进行排序.
不妨先以升序排序过程为例, 理解这种排序算法的思想.
#include<stdio.h>
#define N 10
/* 函数原型 */
void Swap(short*, short*);
void Selection_Sort(short[], short, short(*)(short, short));
short Ascending(short, short);
short Descending(short, short);
void Show(short[], short);
/* */
int main()
{
short x[N];
short i = 0;
short (*f)(short a, short b) = Ascending;
printf("请输入%d个数据: ", N);
while(i < N)
{
scanf("%hd", x + i);
i ++;
}
Selection_Sort(x, N, Ascending);
/* */
return 0;
}
/* 交换两变量的值 */
void Swap(short *x, short *y)
{
short temp = *x;
*x = *y;
*y = temp;
}
/* 通用排序 */
void Selection_Sort(short a[], short n, short (*f)(short a, short b))
{
short i, j, k;
for(i = 0; i < n; i ++)
{
/* k从i开始 */
k = i;
for(j = i + 1; j < n; j