快排

one.

int数组排序
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>

using namespace std;
const int maxn=1007;
const int INF=0x3f3f3f3f;

int a[maxn];
int cmp(const void *a, const void *b)
{
return *(int *)a-*(int *)b;
}
int main()
{
int n;
scanf("%d", &n);
for(int i=0; i<n; i++)
scanf("%d", &a[i]);
qsort(a, n, sizeof(a[0]), cmp);
for(int i=0; i<n; i++)
printf("%d%c", a[i], i==n-1?'\n':' ');
return 0;
}

 

two.

double数组排序
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>

using namespace std;
const int maxn=1007;
const int INF=0x3f3f3f3f;

double a[maxn];
int cmp(const void *a, const void *b)
{
return *(double *)a-*(double *)b;
}
int main()
{
int n;
scanf("%d", &n);
for(int i=0; i<n; i++)
scanf("%lf", &a[i]);
qsort(a, n, sizeof(a[0]), cmp);
for(int i=0; i<n; i++)
printf("%lf%c", a[i], i==n-1?'\n':' ');
return 0;
}

 

three.

对字符数组排序
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>

using namespace std;
const int maxn=1007;
const int INF=0x3f3f3f3f;

char s[maxn];
int cmp(const void *a, const void *b)
{
return *(char *)a-*(char *)b;
}
int main()
{
int n;
scanf("%s", s);
n=strlen(s);
qsort(s, n, sizeof(s[0]), cmp);
printf("%s\n", s);
return 0;
}

 

four.

对结构体排序
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>

using namespace std;
const int maxn=1007;
const int INF=0x3f3f3f3f;

struct node
{
double x;
}s[maxn];
int cmp(const void *a, const void *b)
{
struct node *c=(struct node *)a;
struct node *d=(struct node *)b;
return c->x<d->x?1:-1;
}
int main()
{
int n;
scanf("%d", &n);
for(int i=0; i<n; i++)
scanf("%lf", &s[i].x);
qsort(s, n, sizeof(s[0]), cmp);
for(int i=0; i<n; i++)
printf("%f%c", s[i].x, i==n-1?'\n':' ');
return 0;
}

 

posted @ 2017-04-05 16:32  爱记录一切美好的微笑  阅读(97)  评论(0编辑  收藏  举报