荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: 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软件 网络书店