开花学长手上有一堆在一维数轴上的线段,现在他想把这些线段捋清楚,你能帮帮他吗?
具体来说,有 $n$ 条线段,线段的左端坐标为 $L$, 右端坐标为 $R$ (保证 $L<R$)。具体的排序要求如下:
每个测试点有只有一组数据。
第一个为一个整数 $n (1\le n\le1000)$ 表示一共有 $n$ 条需要排序的线段。
接下来 $n$ 行,每行 $2$ 个整数 $L,R (0\le L < R \le 100) $ ,表示每条线段的左端和右端坐标。
值得注意的是,可能出现一模一样的线段,请将他们全部分别输出。
一共输出 $n$ 行,为 $n$ 条线段从小到大排序之后的结果,每一行两个整数,为每条线段的左端和右端坐标,两个整数之间用一个空格分隔。
3
1 4
1 2
2 3
1 2
1 4
2 3
冒泡排序,选择排序,计数排序,qsort
快速排序均可通过本题。
如果觉得开两个数组太麻烦,不如试试结构体呢?
结构体的定义可以写成以下形式:
struct section {
int l, r;//左端点和右端点
};
struct section temp;//声明一个结构体变量
struct section a[1010];//声明一个结构体数组
交换的时候类似int的交换方式即可。
//假设需要交换section结构体变量a和b
struct section temp=a;
a=b;
b=temp;
Author: 计组OO两开花