#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 ",*(a+i)); } printf(" "); } int main() { int a[5]={5,4,3,2,1}; sort(a,5,compare); print(a,5); return 0; }