sort
2015-07-27 00:22
357 查看
用sort 函数,要加头文件<algorithm>以及using namespace std;另外文件的后缀要改为.cpp
用qsort函数,要加头文件<stdlib>这个是c里的,文件的后缀可以是.c
int型:
sort函数:
int cmp(int a,int b)
{
return a>b;//(从大到小)return a<b;(从小到大)
}
qsort函数:
int cmp(const void *a,const void *b)
{
return *(int *)a-*(int *)b;//(从大到小)return *(int *)b-*(int *)a;(从小到大)
}
double 型:
sort函数:
int cmp(double a,double b)
{
if(a>b)return 1;//(从大到小)if(a<b)return 1;(从小到大)
return -1;
}
qsort函数:
int cmp(const void *a,const void *b)
{
if(*(double *)a>*(double *)b)return 1;//(从大到小)if(*(double *)b>*(double *)a)return 1;(从小到大)
return -1;
}
char 型:
sort函数:
int cmp(char a,char b)
{
return a>b;//(从大到小)return a<b;(从小到大)
}
qsort函数:
int cmp(const void *a,const void *b)
{
return *(char *)a>*(char *)b;//(从大到小)return *(char *)b>*(char *)a;(从小到大)
}
字符串型:
包含头文件<string.h>
qsort函数:
int cmp(const void *a,const void *b)
{
return strcmp((char *)a,(char *)b);//(从大到小)return strcmp((char *)b,(char *)a);(从小到大)因为字符串比较函数直接用的是地址,so。。。。
}
结构体型:
struct node
{
int a;
char b;
double t;
char s[101];
}stu[1001];
sort函数:
int cmp(node c,node d)
{
return c.a>d.a;//return c.a<d.a;
//return c.b>d.b;//return c.b<d.b;
//if((*(node *)c).t>(*(node *)d).t)return 1;return 0;
//return strcmp(c.s,d.s);//return strcmp(d.s,c.s);
//if(c.a==d.a)return c.b<d.b;
}
qsort函数:
int cmp(const void *c,const void *d)
{
return (*(node *)c).a-(*(node *)d).a;//return (*(node *)c).a>(*(node *)d).a;
//return (*(node *)c).b-(*(node *)d).b;//return (*(node *)c).b>(*(node *)d).b;
//if((*(node *)c).t>(*(node *)d).t)return 1;return 0;
//return strcmp((*(node *)c).str,(*(node *)d).str)//return strcmp((*(node *)c).str,(*(node *)d).str);
//if((*(node *)c).a==(*(node *)d).a) return (*(node *)c).b>(*(node *)d).b;
}
调用时sort函数有三个参数例如数组a:sort(a,a+n,cmp);//n为排序的长度
调用qsort函数时有四个参数例如数组a:qsort(a,n,sizeof(a),cmp);//n为排序长度,sizeof()求所占内存的吧
用qsort函数,要加头文件<stdlib>这个是c里的,文件的后缀可以是.c
int型:
sort函数:
int cmp(int a,int b)
{
return a>b;//(从大到小)return a<b;(从小到大)
}
qsort函数:
int cmp(const void *a,const void *b)
{
return *(int *)a-*(int *)b;//(从大到小)return *(int *)b-*(int *)a;(从小到大)
}
double 型:
sort函数:
int cmp(double a,double b)
{
if(a>b)return 1;//(从大到小)if(a<b)return 1;(从小到大)
return -1;
}
qsort函数:
int cmp(const void *a,const void *b)
{
if(*(double *)a>*(double *)b)return 1;//(从大到小)if(*(double *)b>*(double *)a)return 1;(从小到大)
return -1;
}
char 型:
sort函数:
int cmp(char a,char b)
{
return a>b;//(从大到小)return a<b;(从小到大)
}
qsort函数:
int cmp(const void *a,const void *b)
{
return *(char *)a>*(char *)b;//(从大到小)return *(char *)b>*(char *)a;(从小到大)
}
字符串型:
包含头文件<string.h>
qsort函数:
int cmp(const void *a,const void *b)
{
return strcmp((char *)a,(char *)b);//(从大到小)return strcmp((char *)b,(char *)a);(从小到大)因为字符串比较函数直接用的是地址,so。。。。
}
结构体型:
struct node
{
int a;
char b;
double t;
char s[101];
}stu[1001];
sort函数:
int cmp(node c,node d)
{
return c.a>d.a;//return c.a<d.a;
//return c.b>d.b;//return c.b<d.b;
//if((*(node *)c).t>(*(node *)d).t)return 1;return 0;
//return strcmp(c.s,d.s);//return strcmp(d.s,c.s);
//if(c.a==d.a)return c.b<d.b;
}
qsort函数:
int cmp(const void *c,const void *d)
{
return (*(node *)c).a-(*(node *)d).a;//return (*(node *)c).a>(*(node *)d).a;
//return (*(node *)c).b-(*(node *)d).b;//return (*(node *)c).b>(*(node *)d).b;
//if((*(node *)c).t>(*(node *)d).t)return 1;return 0;
//return strcmp((*(node *)c).str,(*(node *)d).str)//return strcmp((*(node *)c).str,(*(node *)d).str);
//if((*(node *)c).a==(*(node *)d).a) return (*(node *)c).b>(*(node *)d).b;
}
调用时sort函数有三个参数例如数组a:sort(a,a+n,cmp);//n为排序的长度
调用qsort函数时有四个参数例如数组a:qsort(a,n,sizeof(a),cmp);//n为排序长度,sizeof()求所占内存的吧
相关文章推荐
- window中的常见方法
- 超过130个你需要了解的vim命令
- 大型网站技术架构
- 插入排序(java)
- 病毒侵袭
- spring+spring-mvc+mybatis配置
- 在photoshop cs5中保存图像文件的方法
- 在photoshop cs5中保存图像文件的方法
- JavaScript权威指南_140_第15章_脚本化文档_15.9-HTML表单-表单和元素的属性
- Android开源项目整理:个性化空间View篇(看遍论坛千万篇,不看此篇也枉然)
- cl: cannot open file 'kernel32.lib'
- Linux strace命令
- 读书笔记MoreEffectiveC++(11)
- Java中内存泄露和内存溢出的区别
- OC面向对象
- Connections in Galaxy War----zoj3261
- 2015-07-26
- sql 中 如果添加 时间戳 字段 timestamp
- linux crontab命令参数及用法详解--linux自动化定时任务cron
- HDU 4219 Randomization? 树形概率DP