qsort()的使用

qsort ()  功 能: 使用快速排序例程进行排序   

用 法: void qsort(void *base, int nelem, int width, int (*fcmp)(const void *,const void *));  

 

#include <string.h>
#include <stdlib.h>
#include<stdio.h> 
int cmp_int(const void *a,const void *b)      //对整形数组排序 (升序) 若想降序可以在返回值前加负号
{
    return *(int*)a > *(int *)b ? 1 : -1;
 // return *(int *)a-*(int *)b; }
int str_cmp(const void * str1,const void *str2)  // 对一个字符数组排序 { return *(char *)str1-*(char *)str2; } int cmp_dou(const void *a,const void *b)     //对double数组排序 { return *(double *)a > *(double *)b ? 1 : -1; } int main() { double arr[6]={123.1,23.3,31.0,54.2,53.2,2};int i; int arr_int[7] ={4,2,5,6,7,21,1}; qsort(arr,6,8,cmp_dou); qsort(arr_int,7,4,cmp); for(i=0;i<6;i++) { printf("%lf\t",arr[i]); } for(i=0;i<6;i++) { printf("%d\t",arr_int[i]); } return 0; }

qsort()地四个函数是自定义的函数排序方式,可以对一个结构体数组的某个成员大小按要求进行排序。

 

posted @ 2017-08-10 21:57  颜小雀  阅读(176)  评论(0编辑  收藏  举报