45fan.com - 路饭网

搜索: 您的位置主页 > 网络频道 > 阅读资讯:使用qsort的方法

使用qsort的方法

2016-09-05 07:31:33 来源:www.45fan.com 【

使用qsort的方法

qsort使用
qsort函数是ANSIC标准中提供的,其声明在stdlib.h文件中,具体内容为:

voidqsort(void*base,size_tnelem,size_twidth,int(*fcmp)(constvoid*,constvoid*));

其中:

*base为要排序的数组

nelem为要排序数组的长度

width为数组元素的大小(以字节为单位)

(*fcmp)(constvoid*a,constvoid*b)为判断大小函数的指针,这个函数需要程序员自己定义,

如果a>b,函数返回1;a<b,函数返回-1;a=b,函数返回0

例:字符串排序

#i nclude<stdio.h>

#i nclude<stdlib.h>

#i nclude<string.h>

charlist[5][4]={"cat","car","cab","cap","can"};

intsort_function(constvoid*a,constvoid*b);

intmain(void)

{

intx;

qsort((void*)list,5,sizeof(list[0]),sort_function);

for(x=0;x<5;x++)

printf("%s//n",list[x]);

return0;

}

intsort_function(constvoid*a,constvoid*b)

{

return(strcmp((char*)a,(char*)b));

}

例:数组排序

#i nclude<stdio.h>

#i nclude<stdlib.h>

intlist[5]={7,5,9,2,6};

intsort_function(constvoid*a,constvoid*b);

intmain(void)

{

intx;

qsort((void*)list,5,sizeof(int),sort_function);

for(x=0;x<5;x++)

printf("%d//n",list[x]);

return0;

}

intsort_function(constvoid*a,constvoid*b)

{

if(*(int*)a>*(int*)b)

return1;

elseif(*(int*)a<*(int*)b)

return-1;

else

return0;

}

本文地址:http://www.45fan.com/a/question/72490.html
Tags: 函数 qsort ANSIC
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部