二維數組快速排序(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);
相關文章
相關標籤/搜索