C语言快排函数的实现
来源:互联网 发布:冰与火之歌第八季 知乎 编辑:程序博客网 时间:2024/05/21 17:28
前言:
快排函数之前一直是手写,但在比赛中,可能为了节约时间,就会用到快排函数,直接调用即可,不用很麻烦的敲代码。
简介:
qsort函数包含在<stdlib.h>头文件里,有四个参数,没有返回值。例 :qsort(s, n, sizeof(s[0]), cmp);1.数组名,即数组所在的首地址。2.排序的个数。3.单个元素的大小。4.。。。。。。
例 :(对int型的排序)
int cmp(const void * a, const void * b) { return *(int *) a - *(int *) b; }
A. 对int类型:
int cmp(const void * a, const void * b) { return (*(int *) a - *(int *) b);
}B. 对double类型/**严格来说,要判断a, b 是否相等,返回0,但double 数不可能相等,只能返回1或-1**/
int cmp(const void * a, const void * b) { return ((*(double *)a - *(double*)b>0) ?1:-1); }
C .对char排序
int cmp(const void *a, const void * b) { return (*(char *) a - *(char *)b); }
D.对结构体排序
//先在函数里面转换,不要在return里面转。
//注意double返回0的问题
int cmp(const void * a, const void * b) { struct node * aa = (struct node *)a; struct node * bb =(struct node *)b; return (((aa->data1)>(bb->data1))?1:-1); }
E . 字符串数组char * a[2332];
int cmp(const void * a, const void * b) { return (strcmp(*(char **)a, *(char **)b)); }
F . 字符串数组char [][];
int cmp(const void * a, const void * b) { return (strcmp((char *)a, (char *)b)); }
C++里面:sort(a, a+10);1.要排序的数组的起始地址。2.结束的地址。3.默认是从小到大(此时可以不写) 也可以从大到小。
A. int 型
例 :
从小到大:
sort(a,a+10);
从大到小:
bool complare(int a,int b){ return a>b; }sort(a,a+10,complare);//不需要传入参数
B.
Sortt
函数的第三个参数可以用这样的语句告诉程序你所采用的排序
原则
less<数据类型>()//从小到大排序
greater<数据类型>()//从大到小排序
sort函数还可以实现对字符的排序,排序方法大同小异
sort(a,a+10,greater<char>());
C .对于C++结构体的快排;
#include <bits/stdc++.h>using namespace std;struct node{ int a; int b;}t[23222];bool cmp(struct node c, struct node d){ if(c.a==d.a) return c.b>d.b;//b升序 else return c.a<d.a;//a降序}int main(){ int p; while(cin>>p) { for(int i=0;i<p;i++) { cin>>t[i].a>>t[i].b; } sort(t, t+p, cmp); for(int i=0;i<p;i++) { cout<<t[i].a<<t[i].b<<endl; } } return 0;}
1 0
- C语言快排函数的实现
- 快排C语言的实现
- C语言 快排函数
- 快排 c语言实现
- C语言实现快排
- C语言快排实现
- 快排C语言实现
- C语言里的快排函数用法(qsort)
- C语言快排函数qsort()
- c语言快排函数详解
- 快排(库函数实现)C语言
- 快排(C语言实现)
- C语言递归实现快排quicksort
- 快排---C语言
- C语言实现快排、归并排序、快排改进算法的递归和非递归算法
- 快排的三种实现,以及三种实现运算速度的比较 c语言
- C语言快排模板 qsort();函数应用
- 实现的快排
- [Leetcode] 42. Trapping Rain Water
- BZOJ 3224: Tyvj 1728 普通平衡树
- GPU&CPU频率和工作模式的获取设置
- 1.Django开发环境搭建
- Hdu 1513 Palindrome【思维+Lcs+滚动数组】
- C语言快排函数的实现
- pat 1124. Raffle for Weibo Followers
- 到底有多二
- java_界面
- Spark入门实战系列--6.SparkSQL(中)--深入了解运行计划及调优
- 南阳理工ACM 题目73 比大小
- PTA 数据结构与算法题目集(中文)5-10 公路村村通 (30分)
- 剑指offer——数值的整数次方
- [kuangbin带你飞]专题二-搜索进阶-D-Escape