C语言qsort函数实例详解如何应用?
- 内容介绍
- 文章标签
- 相关推荐
本文共计853个文字,预计阅读时间需要4分钟。
C语言中qsort函数的用法实例详解+快速排序是一种常用的排序算法,在C语言的标准库中也提供了快速排序的函数。下面详细说明qsort函数的用法。
qsort函数包含在stdlib.h头文件中,其声明如下:
cvoid qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *));
参数说明:- `base`:指向要排序的数组的指针。- `nmemb`:数组中元素的数量。- `size`:每个元素的大小(以字节为单位)。- `compar`:一个函数指针,指向比较函数,用于比较两个元素。
比较函数的声明如下:
cint compar(const void *a, const void *b);
比较函数应该返回以下值之一:- 如果`a`小于`b`,则返回负值。- 如果`a`等于`b`,则返回0。- 如果`a`大于`b`,则返回正值。
下面是一个使用qsort函数的示例:
c#include #include
int compare(const void *a, const void *b) { int int_a=*((int*)a); int int_b=*((int*)b);
if (int_a==int_b) return 0; else if (int_a int main() { int arr[]={5, 2, 9, 1, 5, 6}; int n=sizeof(arr) / sizeof(arr[0]); qsort(arr, n, sizeof(int), compare); printf(Sorted array: \n); for (int i=0; i return 0;} 在上面的示例中,我们定义了一个比较函数`compare`,它将两个整数进行比较。然后,我们使用qsort函数对数组`arr`进行排序。最后,我们打印出排序后的数组。 C语言中qsort函数的用法实例详解 快速排序是一种用的最多的排序算法,在C语言的标准库中也有快速排序的函数,下面说一下详细用法。 qsort函数包含在<stdlib.h>中 qsort函数声明如下:
void qsort(void * base,size_t nmemb,size_t size ,int(*compar)(const void *,const void *));
参数说明: base,要排序的数组 下面看几个例子:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
void main(void)
{
int i;
int a[10]={0,1,2,3,4,5,6,7,8,9};
char b[10]={'a','b','c','d','e','f','g','h','i','j'};
double c[10]={0.1,0.2,0.9,0.5,0.3,0.6,0.7,0.8,1.1,1.2};
int cmp1(const void * a,const void * b)
{
return (*(int*)a-*(int*)b);//a>b 返回正值
}
int cmp2(const void * a,const void *b)
{
return(*(char*)a-*(char*)b);
}
int cmp3(const void * a,const void * b)
{
if(fabs(*(double*)a-*(double *)b)<1*exp(-20))
return 0;
else
return(((*(double*)a-*(double*)b)>0)?1:-1);
}
qsort(a,10,sizeof(int),&cmp1);//对于函数指针(指向函数的指针),直接传入函数名和函数名进行&
//运算都是可以的,因为在调用函数时也是取的函数的地址
qsort(b,10,sizeof(char),cmp2);
qsort(c,10,sizeof(double),cmp3);
for(i=0;i<10;i++)
printf("%d ",a[i]);
for(i=0;i<10;i++)
printf("%c ",b[i]);
for(i=0;i<10;i++)
printf("%lf ",c[i]);
}
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
nmemb,数组中元素的数目
size,每个数组元素占用的内存空间,可使用sizeof函数获得
compar,指向函数的指针也即函数指针。这个函数用来比较两个数组元素,第一个参数大于,等于,小于第二个参数时,分别显示正值,零,负值。
本文共计853个文字,预计阅读时间需要4分钟。
C语言中qsort函数的用法实例详解+快速排序是一种常用的排序算法,在C语言的标准库中也提供了快速排序的函数。下面详细说明qsort函数的用法。
qsort函数包含在stdlib.h头文件中,其声明如下:
cvoid qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *));
参数说明:- `base`:指向要排序的数组的指针。- `nmemb`:数组中元素的数量。- `size`:每个元素的大小(以字节为单位)。- `compar`:一个函数指针,指向比较函数,用于比较两个元素。
比较函数的声明如下:
cint compar(const void *a, const void *b);
比较函数应该返回以下值之一:- 如果`a`小于`b`,则返回负值。- 如果`a`等于`b`,则返回0。- 如果`a`大于`b`,则返回正值。
下面是一个使用qsort函数的示例:
c#include #include
int compare(const void *a, const void *b) { int int_a=*((int*)a); int int_b=*((int*)b);
if (int_a==int_b) return 0; else if (int_a int main() { int arr[]={5, 2, 9, 1, 5, 6}; int n=sizeof(arr) / sizeof(arr[0]); qsort(arr, n, sizeof(int), compare); printf(Sorted array: \n); for (int i=0; i return 0;} 在上面的示例中,我们定义了一个比较函数`compare`,它将两个整数进行比较。然后,我们使用qsort函数对数组`arr`进行排序。最后,我们打印出排序后的数组。 C语言中qsort函数的用法实例详解 快速排序是一种用的最多的排序算法,在C语言的标准库中也有快速排序的函数,下面说一下详细用法。 qsort函数包含在<stdlib.h>中 qsort函数声明如下:
void qsort(void * base,size_t nmemb,size_t size ,int(*compar)(const void *,const void *));
参数说明: base,要排序的数组 下面看几个例子:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
void main(void)
{
int i;
int a[10]={0,1,2,3,4,5,6,7,8,9};
char b[10]={'a','b','c','d','e','f','g','h','i','j'};
double c[10]={0.1,0.2,0.9,0.5,0.3,0.6,0.7,0.8,1.1,1.2};
int cmp1(const void * a,const void * b)
{
return (*(int*)a-*(int*)b);//a>b 返回正值
}
int cmp2(const void * a,const void *b)
{
return(*(char*)a-*(char*)b);
}
int cmp3(const void * a,const void * b)
{
if(fabs(*(double*)a-*(double *)b)<1*exp(-20))
return 0;
else
return(((*(double*)a-*(double*)b)>0)?1:-1);
}
qsort(a,10,sizeof(int),&cmp1);//对于函数指针(指向函数的指针),直接传入函数名和函数名进行&
//运算都是可以的,因为在调用函数时也是取的函数的地址
qsort(b,10,sizeof(char),cmp2);
qsort(c,10,sizeof(double),cmp3);
for(i=0;i<10;i++)
printf("%d ",a[i]);
for(i=0;i<10;i++)
printf("%c ",b[i]);
for(i=0;i<10;i++)
printf("%lf ",c[i]);
}
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
nmemb,数组中元素的数目
size,每个数组元素占用的内存空间,可使用sizeof函数获得
compar,指向函数的指针也即函数指针。这个函数用来比较两个数组元素,第一个参数大于,等于,小于第二个参数时,分别显示正值,零,负值。

