bsearch和qsort

原创 2005年03月03日 18:53:00
使用<stdlib.h>里的bsearch和qsort,比较函数的基本写法 
1,确定被比较对象的顺序关系; 
2,比较函数总用两个const void* 参数; 
3,在函数开始时将参数正确转换到指向数组元素类型的指针; 
4,在第一个参数大于、等于、小于第二个时分别返回1、0、-1; 
5,注意使用方式。 

--------------------------------------------------- 

例子:假定被排序的是整数数组。定义比较函数: 

int icmp(const void *p, const void *q){ 
    const int *m = p, *n = q; 
    return *m > *n ? 1 : (*m == *n ? 0 : -1); 


使用: 

int *p, a[] = {5, 6, 3, 28, 23, 34, 7, 9, 6, 14}, k = 7; 

int main () { 
    ... ... 
    qsort(a, sizeof(a)/sizeof(int), sizeof(int), icmp); 
    /* 这样,数组a的元素已经按照上升顺序排列好了 */ 

    p = bsearch(&k, a, sizeof(a)/sizeof(int), sizeof(int), icmp); 
    /* 指针p将指向数组a中元素7的位置 */ 

    ... ... 


sort(排序) qsort(快排) bsearch(二分查找)

sort: 一、对int类型数组排序 int a[100]; int cmp ( int a , int b ) //不必强制转换 { return a 升序排列。 } sort (a(数组名) ,...
  • u013497151
  • u013497151
  • 2014-03-08 11:50:08
  • 1253

qsort函数和bsearch函数的使用

1. qsort排序  [cpp] view plaincopyprint? /* qsort example */   #include    #in...
  • zzwdkxx
  • zzwdkxx
  • 2015-06-09 16:32:21
  • 685

利用c语言的qsort与bsearch实现排序与查找

//注意在使用bsearch之前必须是已经排序好了的 #include "stdafx.h" #include #include using namespace std; typedef s...
  • u010273007
  • u010273007
  • 2017-03-19 14:41:58
  • 459

使用qsort排序结构体数组,使用bsearch查询结构体数组

// 使用qsort排序结构体数组,使用bsearch查询结构体数组 //函数名:qsort //功  能:使用快速排序例程进行排序 //头文件:stdlib.h //用  法:void qsort(...
  • dgyanyong
  • dgyanyong
  • 2013-11-21 11:31:40
  • 2171

qsort与bsearch学习

排序算法有很多,搜索算法也很多。c语言提供了qsort和bsearch这两个库函数,今天学习了一下,感觉很实用。 下面是测试代码:#include #include #includeint cmp(...
  • ustc_ym
  • ustc_ym
  • 2016-06-20 20:51:58
  • 133

qsort与bsearch在链表中的使用

系统内自带的qsort与bsearch函数是经过多次优化的函数,效率极高。因此常选用这两个函数完成排序和查找工作。但qsort与bsearch只作用于连续存储单元,不能直接作用于链表。我的解决方法是将...
  • wze2009
  • wze2009
  • 2010-04-06 21:57:00
  • 1279

qsort 与bsearch

兩個最重要的資料結構就是「搜尋」和「排序」了,所以看過資料結構的人,想必知道快速排序算是在排序中最好用的,而二元搜尋也是一樣,但是實做的過程往往很複雜,但是std的標準函式庫已有提供給我們使用了,以下...
  • eroswang
  • eroswang
  • 2009-04-15 13:43:00
  • 2120

sort,qsort,bsearchs函数的用法

这个函数可以传两个参数或三个参数。第一个参数是要排序的区间首地址,第二个参数是区间尾地址的下一地址。也就是说,排序的区间是[a,b)。简单来说,有一个数组int a[100],要对从a[0]到a[...
  • xky140610205
  • xky140610205
  • 2016-08-16 20:24:58
  • 8328

排序,查找,qsort和bsearch的简单总结,scanf字符串截取

有一些时候,一些方便用户做的设计,往往会降低产品本身的安全性。 安全性与易用性,是一道产品设计者需要仔细思考的题。 ====================================...
  • ls1160
  • ls1160
  • 2014-07-18 20:32:30
  • 898

快速排序与折半查找算法函数:qsort与bsearch

qsort用来排序,bsearch用二分法来查找元素 void qsort( void *base, size_t num, size_t width,int (__cdecl *compare)(...
  • heron804
  • heron804
  • 2013-04-21 11:41:38
  • 1202
收藏助手
不良信息举报
您举报文章:bsearch和qsort
举报原因:
原因补充:

(最多只允许输入30个字)