二维数组快速排序
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);
原文地址:https://www.cnblogs.com/-skyblue/p/9575711.html
时间: 2024-10-08 10:27:54