各种快排调用模板 c语言版
2016-08-11 19:49
267 查看
1、对int类数组排序
2,对char型数组的排序
#include<stdio.h> #include<string.h> #include<stdlib.h> int cmp(const void* a,const void* b) { return *(int *)a-*(int *)b; } int main() { int i,a[1000]; int n; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&a[i]); qsort(a,n,sizeof(a[0]),cmp); for(i=0;i<n-1;i++) printf("%d ",a[i]); printf("%d\n",a[i]); return 0; }
2,对char型数组的排序
#include<stdio.h> #include<string.h> #include<stdlib.h> char cmp(const void* a,const void* b) { return *(char *)a-*(char *)b; } int main() { char a[1000]; int i,n; scanf("%d",&n); for(i=0;i<n;i++) scanf("%c",&a[i]); qsort(a,n,sizeof(a[0]),cmp); for(i=0;i<n-1;i++) printf("%c ",a[i]); printf("%c\n",a[i]); return 0; }3,对double型数组的排序
#include<stdio.h> #include<string.h> #include<stdlib.h> int cmp(const void* a,const void* b) { return *(double *)a>*(double *)b?1:-1; } int main() { double a[1000]; int n,i; scanf("%d",&n); for(i=0;i<n;i++) scanf("%lf",&a[i]); qsort(a,n,sizeof(a[0]),cmp); for(i=0;i<n-1;i++) printf("%lf ",a[i]); printf("%lf\n",a[i]); return 0; }4、对结构体1级排序
#include<stdio.h> #include<string.h> #include<stdlib.h> struct student { int x; int y; }stu[300]; int cmp(const void* a,const void* b) { return (*(student *)a).x-(*(student *)b).x; } int main() { int n,i; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d%d",&stu[i].x,&stu[i].y); qsort(stu,n,sizeof(stu[0]),cmp); for(i=0;i<n;i++) printf("%d %d\n",stu[i].x,stu[i].y); return 0; }5,、对结构体2级排序
#include<stdio.h> #include<string.h> #include<stdlib.h> struct student { int x; int y; }stu[300]; int cmp(const void* a,const void* b) { if((*(student *)a).x==(*(student *)b).x) return (*(student *)a).y-(*(student *)b).y; else { return (*(student *)a).x-(*(student *)b).x; } } int main() { int n,i; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d%d",&stu[i].x,&stu[i].y); qsort(stu,n,sizeof(stu[0]),cmp); for(i=0;i<n;i++) printf("%d %d\n",stu[i].x,stu[i].y); return 0; }6,、对字符串进行排序
#include<stdio.h> #include<string.h> #include<stdlib.h> int cmp(const void* _a,const void* _b) { char* a=(char*)_a; char* b=(char*)_b; return strcmp(a,b); } int main() { char str[100][100]; int n,i; scanf("%d",&n); for(i=0;i<n;i++) scanf("%s",str[i]); qsort(str,n,sizeof(str[0]),cmp); for(i=0;i<n;i++) printf("%s\n",str[i]); return 0; }
相关文章推荐
- C语言 第十五天 与 本周总结
- C++ MFC 线程更新主窗口
- c++顺序容器
- C++函数引用形参和非引用形参
- 基于C++、链表以及泛型编程的学生成绩管理系统
- c/c++第十四天
- 【C++专题】static_cast, dynamic_cast, const_cast探讨
- C语言精髓2
- Effective Modern C++ 条款5 尽量用auto代替显式类型声明
- C++学习004-Go To 语句使用
- c语言精髓
- 在while中使用cin>>a 为条件,注意事项
- C++学习003-#define 自定义宏
- C++在函数声明时,后面跟个const是什么意思?
- C语言实现类workerman的功能
- C++学习002-C++代码中插入汇编语句
- C语言第三周,指针
- 在C++中定义常量的两种方法的比较
- C++ 继承(三)
- C++学习001-注释