码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-09-03 02:11:29      阅读:1280      评论:0      收藏:0      [点我收藏+]

标签:应该   size   text   iostream   names   类型   const   ace   nbsp   

二维数组快速排序

 

  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)

标签:应该   size   text   iostream   names   类型   const   ace   nbsp   

原文地址:https://www.cnblogs.com/-skyblue/p/9575711.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!