/*排序规则:由小到大正序*/ if(a<b) return 1; return 0; }
int desc(int a,int b){ if(a>b) return 1; return 0; } /* *根据排序规则进行排序 *arr: 对指定int数组进行排序 *len: 数据长度 *rule: 排序规则 */ void orderbyrule(int *arr,int len,int (*rule)(int a,int b)){ int len1=len-1; for(int i=0;i<len1;i++){ for(int j=i+1;j<len;j++){ if(1==rule(*(arr+j),*(arr+i))){ *(arr+i)+=*(arr+j); *(arr+j)=*(arr+i)-*(arr+j); *(arr+i)=*(arr+i)-*(arr+j); } } } }例: int arr[3] = {4,3,6}; orderbyrule(arr, 3, asc); for(int j=0;j<3;j++){ printf("%d ",*(arr+j)); } |
C 实现数字排序ASC或DESC
最新推荐文章于 2022-11-30 21:06:36 发布