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

二维数组快速排序node

 

  qsort是c中快速排序,若是简单的一维数组排序,想必你们的懂。如今看一下二维数组的排序,虽然能够冒泡可是太费时间了,咱们这里使用qsort来快速排序,看代码应该看得懂吧。ios

代码:c++

 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);
相关文章
相关标签/搜索