1、按照x关键字递增排序(y没有要求)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.math.BigInteger;
import java.text.ParseException;
import java.util.*;
public class Main
{
static PrintWriter pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));
static int N = (int)3000 + 10;
static PII a[] = new PII[N];
static Mycomparator cmp = new Mycomparator();
public static void main(String[] args ) throws IOException, ParseException
{
int n = rd.nextInt();
for(int i = 1; i <= n ; i ++)
{
int x = rd.nextInt();
int y = rd.nextInt();
a[i] = new PII(x,y);
}
Arrays.sort(a,1,n + 1,cmp);
for(int i = 1 ; i <= n ; i ++) pw.println(a[i].x + " " + a[i].y);
pw.flush();
}
}
class rd
{
static BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
static StringTokenizer tokenizer = new StringTokenizer("");
static String nextLine() throws IOException { return reader.readLine(); }
static String next() throws IOException
{
while (!tokenizer.hasMoreTokens()) tokenizer = new StringTokenizer(reader.readLine());
return tokenizer.nextToken();
}
static int nextInt() throws IOException { return Integer.parseInt(next()); }
static double nextDouble() throws IOException { return Double.parseDouble(next()); }
static long nextLong() throws IOException { return Long.parseLong(next());}
static BigInteger nextBigInteger() throws IOException { return new BigInteger(rd.nextLine()); }
}
class PII
{
int x,y;
public PII(int x, int y)
{
this.x = x;
this.y = y;
}
}
// 手写cmp,万能,结构体里根本不用写接口
class Mycomparator implements Comparator<PII>
{
@Override
public int compare(PII o1, PII o2)
{
return o1.x - o2.x; // x不同,按x递增排序
}
}
![](https://img-blog.csdnimg.cn/img_convert/93d8a27dc57089fe2fb962281f5e8f2a.png)
2、按照x关键字递增排序(要求y也递增)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.math.BigInteger;
import java.text.ParseException;
import java.util.*;
public class Main
{
static PrintWriter pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));
static int N = (int)3000 + 10;
static PII a[] = new PII[N];
static Mycomparator cmp = new Mycomparator();
public static void main(String[] args ) throws IOException, ParseException
{
int n = rd.nextInt();
for(int i = 1; i <= n ; i ++)
{
int x = rd.nextInt();
int y = rd.nextInt();
a[i] = new PII(x,y);
}
Arrays.sort(a,1,n + 1,cmp);
for(int i = 1 ; i <= n ; i ++) pw.println(a[i].x + " " + a[i].y);
pw.flush();
}
}
class rd
{
static BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
static StringTokenizer tokenizer = new StringTokenizer("");
static String nextLine() throws IOException { return reader.readLine(); }
static String next() throws IOException
{
while (!tokenizer.hasMoreTokens()) tokenizer = new StringTokenizer(reader.readLine());
return tokenizer.nextToken();
}
static int nextInt() throws IOException { return Integer.parseInt(next()); }
static double nextDouble() throws IOException { return Double.parseDouble(next()); }
static long nextLong() throws IOException { return Long.parseLong(next());}
static BigInteger nextBigInteger() throws IOException { return new BigInteger(rd.nextLine()); }
}
class PII
{
int x,y;
public PII(int x, int y)
{
this.x = x;
this.y = y;
}
}
// 手写cmp,万能,结构体里根本不用写接口
class Mycomparator implements Comparator<PII>
{
@Override
public int compare(PII o1, PII o2)
{
if(o1.x != o2.x) return o1.x - o2.x; // x不同,按x递增排序
return o1.y - o2.y; // x相同,按y递增排序
}
}
![](https://img-blog.csdnimg.cn/img_convert/de25b4227c4e58379fbc2e653a0f0a10.png)
3、按照x关键字递减排序(y没有要求)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.math.BigInteger;
import java.text.ParseException;
import java.util.*;
public class Main
{
static PrintWriter pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));
static int N = (int)3000 + 10;
static PII a[] = new PII[N];
static Mycomparator cmp = new Mycomparator();
public static void main(String[] args ) throws IOException, ParseException
{
int n = rd.nextInt();
for(int i = 1; i <= n ; i ++)
{
int x = rd.nextInt();
int y = rd.nextInt();
a[i] = new PII(x,y);
}
Arrays.sort(a,1,n + 1,cmp);
for(int i = 1 ; i <= n ; i ++) pw.println(a[i].x + " " + a[i].y);
pw.flush();
}
}
class rd
{
static BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
static StringTokenizer tokenizer = new StringTokenizer("");
static String nextLine() throws IOException { return reader.readLine(); }
static String next() throws IOException
{
while (!tokenizer.hasMoreTokens()) tokenizer = new StringTokenizer(reader.readLine());
return tokenizer.nextToken();
}
static int nextInt() throws IOException { return Integer.parseInt(next()); }
static double nextDouble() throws IOException { return Double.parseDouble(next()); }
static long nextLong() throws IOException { return Long.parseLong(next());}
static BigInteger nextBigInteger() throws IOException { return new BigInteger(rd.nextLine()); }
}
class PII
{
int x,y;
public PII(int x, int y)
{
this.x = x;
this.y = y;
}
}
// 手写cmp,万能,结构体里根本不用写接口
class Mycomparator implements Comparator<PII>
{
@Override
public int compare(PII o1, PII o2)
{
return o2.y - o1.y; // y不同,按y递减排序
}
}
![](https://img-blog.csdnimg.cn/img_convert/bc29bb38345c76b16dc8e2682ef35a5c.png)
4、按照x关键字递减排序(y要求递减)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.math.BigInteger;
import java.text.ParseException;
import java.util.*;
public class Main
{
static PrintWriter pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));
static int N = (int)3000 + 10;
static PII a[] = new PII[N];
static Mycomparator cmp = new Mycomparator();
public static void main(String[] args ) throws IOException, ParseException
{
int n = rd.nextInt();
for(int i = 1; i <= n ; i ++)
{
int x = rd.nextInt();
int y = rd.nextInt();
a[i] = new PII(x,y);
}
Arrays.sort(a,1,n + 1,cmp);
for(int i = 1 ; i <= n ; i ++) pw.println(a[i].x + " " + a[i].y);
pw.flush();
}
}
class rd
{
static BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
static StringTokenizer tokenizer = new StringTokenizer("");
static String nextLine() throws IOException { return reader.readLine(); }
static String next() throws IOException
{
while (!tokenizer.hasMoreTokens()) tokenizer = new StringTokenizer(reader.readLine());
return tokenizer.nextToken();
}
static int nextInt() throws IOException { return Integer.parseInt(next()); }
static double nextDouble() throws IOException { return Double.parseDouble(next()); }
static long nextLong() throws IOException { return Long.parseLong(next());}
static BigInteger nextBigInteger() throws IOException { return new BigInteger(rd.nextLine()); }
}
class PII
{
int x,y;
public PII(int x, int y)
{
this.x = x;
this.y = y;
}
}
// 手写cmp,万能,结构体里根本不用写接口
class Mycomparator implements Comparator<PII>
{
@Override
public int compare(PII o1, PII o2)
{
if(o2.y != o1.y) return o2.y - o1.y; // y不同,按y递减排序
return o2.x - o1.x; // y相同,按x递减排序
}
}
![](https://img-blog.csdnimg.cn/img_convert/bc29bb38345c76b16dc8e2682ef35a5c.png)