二維數組快速排序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);