qsort(快速排序)用法
2014-12-10 20:29
127 查看
首先需要写一个比较的函数comp
注意qsort在c语言中头文件为stdlib.h
如何对单个字母进行快速排序,只需将comp函数改一下
介绍一下strcmp(这个函数很好哦,可以判断两个字符串是否相等,相等就返回0),其库函数为string.h,作用为两个字符串串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止
下面举个例子说明
二维数组运用qsort排序
1
2
3
qsort对结构体进行排序
qsort(a, n,sizeof(structqueue),comp);
注意qsort在c语言中头文件为stdlib.h
#include "stdio.h" #include "stdlib.h" int comp(const void *a,const void *b) { return *(int*)a-*(int*)b;//上面为ab,这个地方也为ab,即从小到大,如果方向不这样比如ab,ba就是从大到小 } int main() { int a[3],i; for(i=0;i<3;i++) scanf("%d",&a[i]); qsort(a,3,sizeof(int),comp); for(i=0;i<3;i++) printf("%d",a[i]); }//记住排序方式,这个为从小到大(可以看一下a,b顺序,上面ab顺序相同)
如何对单个字母进行快速排序,只需将comp函数改一下
#include <stdio.h> #include <string.h> #include "stdlib.h" int comp(const void *a,const void *b) { return *(char*)a-*(char*)b;// } int main(int argc, const char * argv[]) { char a[100]; scanf("%s",a); qsort(a,strlen(a),sizeof(char),comp);//注意n值必须与字符串长度保持一致 printf("%s",a); return 0; }
介绍一下strcmp(这个函数很好哦,可以判断两个字符串是否相等,相等就返回0),其库函数为string.h,作用为两个字符串串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止
下面举个例子说明
#include<string.h> #include "stdio.h" int main() { char a[100],b[100]; scanf("%s %s",a,b);//比较字符串a和b的大小(根据ASCII码值,返还ASCII差值,a大于b为正,a小于b为负) printf("%d",strcmp(a, b)); }
二维数组运用qsort排序
1
int cmp(const void * a, const void * b) { const char* ca = *(const char* *)a; const char* cb = *(const char* *)b; int la = strlen(ca); int lb = strlen(cb); if (la == lb) return strcmp(ca, cb); else return la - lb; }
2
int cmp(const void *a,const void *b) { int *c = (int *)a; int *d = (int *)b; if(*c != *d) return *c - *d; return *(d+1) - *(c+1);//在此只是对[x][2]长度比较 }
3
qsort对结构体进行排序
struct queue { int start; int end; }a[100]; int comp(const void*a,const void*b) { struct queue *c,*d; c=(struct queue*)a;//强制转化 d=(struct queue*)b; if(c->end<d->end) return -1; else if(c->end>d->end) return 1; else return 0; }然后再在主函数中运用qsort
qsort(a, n,sizeof(structqueue),comp);
相关文章推荐
- qsort()编译器自带快速排序的用法
- 快速排序~sort&qsort的用法~以C++
- qsort(快速排序)的用法
- qsort快速排序用法--完整版(解释了cmp)【转】
- qsort的用法
- C++ 排序函数 sort(),qsort()的用法
- qsort bsearch 函数用法
- qsort和sort的用法
- qsort用法
- 【学习笔记】C#中HashTable和快速排序的用法,从单词频率统计小程序写起
- 利用qsort() 对字符串的内容快速排序
- qsort()用法整理
- C/C++ qsort()快速排序的用法
- c++中sort()及qsort()的用法总结
- sort() 和 qsort() 用法详解
- 通讯录排序(qsort快速排序)
- qsort用法
- C++ 排序函数 sort(),qsort()的用法
- C++ 排序函数 sort(),qsort()的用法
- qsort用法总结