#include<stdio.h>
int compare(int a,int b)
{
return a - b;
}
void sort(int *a,int n,int(*p)(int,int))
{
int i,j;
/*
for(i=0;i<n-1;i++)
{
for(j=0;j<n-i-1;j++)
{
if(p(a[j],a[j+1])>0)
{
int temp;
temp = a[j+1];
a[j+1] = a[j];
a[j] = temp;
}
}
}
*/
//冒泡排序的两种形式
for(i=0;i<n;i++)
{
for(j=i;j<n;j++)
{
if(p(a[i],a[j])>0)
{
int temp;
temp = a[j];
a[j] = a[i];
a[i]=temp;
}
}
}
}
void print(int *a,int n)
{
int i;
for(i=0;i<n;i++)
{
printf("%d\t",*(a+i));
}
printf("\n");
}
int main()
{
int a[5]={5,4,3,2,1};
sort(a,5,compare);
print(a,5);
return 0;
}
利用函数指针对数组进行排序
最新推荐文章于 2022-05-20 14:06:50 发布