1 #include <iostream> 2 #include <algorithm>//sort函数需求的STL库 3 #include <memory.h>//memset函数需求的头文件 4 #define MAX_SIZE 100000//定义最大允许的空间 5 using std::cin; 6 using std::cout; 7 using std::endl; 8 using std::sort; 9 struct MyList 10 { 11 int a; 12 int b; 13 };//定义结构体 14 15 MyList mylist1[MAX_SIZE]; 16 17 bool cmp(MyList x1,MyList x2)//定义排序方法 18 { 19 return x1.a<x2.b; 20 } 21 22 void fInitialize(MyList *x)//数组初始化,快速填充0 23 { 24 memset(x,0,sizeof(MyList)); 25 } 26 27 int main() 28 { 29 int iListSize=0; 30 while(cin>>mylist1[iListSize].a>>mylist1[iListSize].b) 31 { 32 iListSize++; 33 } 34 sort(mylist1,mylist1+iListSize,cmp);//需要排序的对象,需要排序的范围,排序方法 35 for(int i=0;i<iListSize;i++) 36 { 37 cout<<mylist1[i].a<<" "<<mylist1[i].b<<endl; 38 } 39 return 0; 40 41 }
根据你的测试数据写的,因为你没说具体行数,所以采用这种任意行数的输入方式;
实际上排序方式有很多,我这个代码是C++ 的STL中的快排,内置的是堆排序,不是最快的方法,但是比冒泡快
是用结构体来啊
@M-Kepler: 方法很多,这个是比较易于理解的方法
两个一起冒泡....
一起冒泡?有其他方法吗?我想的是这样:cin>>i>>s[i];这样的话就可以对应起来,可是没办法做到排序