各种快排调用模板 c语言版

来源:互联网 发布:微信加好友软件 编辑:程序博客网 时间:2024/04/28 17:07

1、对int类数组排序

#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;}



0 0