二维数组快速排序(sort+qsort)

Posted -skyblue

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二维数组快速排序(sort+qsort)相关的知识,希望对你有一定的参考价值。

二维数组快速排序

 

  qsort是c中快速排序,如果简单的一维数组排序,想必大家的懂。现在看一下二维数组的排序,虽然可以冒泡但是太费时间了,我们这里使用qsort来快速排序,看代码应该看得懂吧。

代码:

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 struct node
 4 {
 5     int x,y;
 6 }a[10005];
 7 int cmp(const void *a,const void *b)    //要转化为结构体类型
 8 {
 9     struct node *c = (node*)a;
10     struct node *d = (node*)b;
11     return c->y - d->y;
12 }
13 int main()
14 {
15     int i,m,n;
16     scanf("%d",&m);
17     while(m--)
18     {
19         scanf("%d",&n);
20         for(i=0; i<n; i++)
21             scanf("%d%d",&a[i].x,&a[i].y);
22         qsort(a,n,sizeof(a[0]),cmp);    //记得是sizeof(a[0])

 

 

  sort是c++中的快速排序,不多说,直接上代码:

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 using namespace std;
 5 struct node
 6 {
 7     int x,y;
 8 }a[10005];
 9 bool cmp(node a,node b)
10 {
11     return a.y < b.y;
12 }
13 int main()
14 {
15     int m,n,i,k,ans;
16     scanf("%d",&m);
17     while(m--)
18     {
19         scanf("%d",&n);
20         for(i=0; i<n; i++)
21             scanf("%d%d",&a[i].x,&a[i].y);
22         sort(a,a+n,cmp);

 

以上是关于二维数组快速排序(sort+qsort)的主要内容,如果未能解决你的问题,请参考以下文章

排序中的qsort和sort

qsort函数sort函数

qsort函数sort函数 (精心整理篇)(转载)

sort与qsort的异同

(转)qsort和sort

qsort