荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: huhaiming (一生只爱她), 信区: Program
标  题: Re: stdlib里面的快速排序和二分查找
发信站: 荔园晨风BBS站 (Thu Mar 18 11:57:21 2004), 站内信件



可以的。比较函数的大小关系是适当更改。
调用qsort时的参数也要注意更改。

int cmp(const void *p,const void *q)
{
    struct node *r,*s;
    r=(struct node*)p,s=(struct node*)q;
    return r->info-s->info;
}

调用时: qsort(a,sizeof(a)/sizeof(a[0]),sizeof(struct node),cmp);  //排序
//直接写成 qsort(a,5,sizeof(struct node),cmp);  也可以
【 在 kali (江火) 的大作中提到: 】
: 可不可以用如下结构排序?
: struct node
: {
:        int info;
:        char ch;
: }a[5];
: 以info为关键字排序。讨教。
: 【 在 huhaiming (一生只爱她) 的大作中提到: 】
: : C++的stdlib.h里有个qsort函数,用来快速排序的
: : cmp是比较函数,传去两个指针,返回一个大小关系
: : 自己写了cmp函数后,就可以用qsort了,具体的你可以找些相关的说明
: : 四个参数,第一个是起始地址,第二个是元素个数,第三个是元素长度,第四个是
: : 所用的比较函数
: : 具体的例子请参看下面的两个例子。一个是整数数组的排序,一个是字符串的排序


--

菩提本无树,明镜亦非台

本来无一物,何处惹尘埃

※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 61.144.235.39]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店