荔园在线

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

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


发信人: huhaiming (一生只爱她), 信区: Program
标  题: int型的qsort&bsearch
发信站: 荔园晨风BBS站 (Thu Mar 18 11:00:56 2004), 站内信件


#include <stdio.h>
#include <stdlib.h>
#include <string.h>

const int count=10;
int a[count];

int cmp(const void *p1,const void *p2)
{
        return *(int*)p1-*(int*)p2;  //升序
//      return *(int*)p2-*(int*)p1;  //降序
}

int fcmp(const void *p1,const void *p2)
{
        return *(int*)p1-*(int*)p2; //排好的序是升序
//      return *(int*)p2-*(int*)p1; //排好的序是降序
}

int main()
{
        void *result;
        int i,n,key=82;

        freopen("test.in","r",stdin);
        scanf("%d",&n);
        while(n)
        {
                for(i=0;i<n;i++)
                        scanf("%d",&a[i]);

                printf("The number not sorted are(%d nubers):\n",n);
                for(i=0;i<n;i++)
                        printf("%3d ",a[i]);
                printf("\n");

//快速排序
                qsort(a,n,sizeof(int),cmp);
//参数一,起始地址; 参数二,元素个数;参数三,元素大小;参数四,判断函数
//起始位置可以从第二个元素开始,可以改成qsort(&a[1],n-1,count,cmp);


//二分查找
                result = bsearch(&key,a,n,sizeof(int),fcmp);

                if(result==NULL) printf("Not found key %d\n",key);
                else printf("found the key %d\n", *((int*)result) );
/*  print for qsort
                printf("The real number sorted are(%d nubers):\n",n);
                for(i=0;i<n;i++)
                        printf("%3d ",a[i]);
                printf("\n");

                printf("The all number sorted are(%d numbers):\n",count);
                for(i=0;i<count;i++)
                        printf("%3d ",a[i]);
                printf("\n");

                printf("\n");
*/
                scanf("%d",&n);
        }

        return 0;
}
--

菩提本无树,明镜亦非台

本来无一物,何处惹尘埃

※ 修改:·huhaiming 於 Mar 18 11:02:03 修改本文·[FROM: 61.144.235.39]
※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 61.144.235.39]


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

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